{
	"id": "c351d3b341c45593e5d6bf39f022cfef",
	"_format": "hh-sol-build-info-1",
	"solcVersion": "0.8.4",
	"solcLongVersion": "0.8.4+commit.c7e474f2",
	"input": {
		"language": "Solidity",
		"sources": {
			"bridges/facets/StargateFacet.sol": {
				"content": "// SPDX-License-Identifier: MIT\npragma solidity 0.8.4;\n\nimport {IStargateRouter} from \"../interfaces/IStargateRouter.sol\";\nimport {IStargateReceiver} from \"../interfaces/IStargateReceiver.sol\";\nimport {IERC20} from \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport {SafeERC20} from \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\";\nimport {ReentrancyGuard} from \"../helpers/ReentrancyGuard.sol\";\nimport {CannotBridgeToSameNetwork, InvalidAmount, InvalidConfig} from \"../errors/GenericErrors.sol\";\nimport {SenderNotStargateRouter, NoMsgValueForCrossChainMessage, StargateRouterAddressZero, InvalidSourcePoolId, InvalidDestinationPoolId} from \"../errors/StargateErrors.sol\";\nimport {LibDiamond} from \"../libs/LibDiamond.sol\";\nimport \"hardhat/console.sol\";\n\n/// @title StargateFacet\n/// @author Luke Wickens <luke@pillarproject.io>\n/// @notice Stargate/LayerZero intergration for bridging tokens\n\ncontract StargateFacet is IStargateReceiver, ReentrancyGuard {\n    using SafeERC20 for IERC20;\n    //////////////////////////////////////////////////////////////\n    /////////////////////////// Events ///////////////////////////\n    //////////////////////////////////////////////////////////////\n    event SGInitialized(address stargate, uint16 chainId);\n    event SGTransferStarted(\n        string bridgeUsed,\n        address fromToken,\n        address toToken,\n        address from,\n        address to,\n        uint256 amount,\n        uint16 chainIdTo\n    );\n    event SGReceivedOnDestination(address token, uint256 amount);\n    event SGUpdatedRouter(address newAddress);\n    event SGUpdatedSlippageTolerance(uint256 newSlippage);\n    event SGAddedPool(uint16 chainId, address token, uint256 poolId);\n\n    //////////////////////////////////////////////////////////////\n    ////////////////////////// Storage ///////////////////////////\n    //////////////////////////////////////////////////////////////\n\n    bytes32 internal constant NAMESPACE =\n        keccak256(\"io.etherspot.facets.stargate\");\n    struct Storage {\n        address stargateRouter;\n        uint16 chainId;\n        uint256 dstGas;\n        uint256 slippage;\n        mapping(uint16 => mapping(address => uint256)) poolIds;\n    }\n\n    //////////////////////////////////////////////////////////////\n    ////////////////////////// Structs ///////////////////////////\n    //////////////////////////////////////////////////////////////\n\n    struct StargateData {\n        uint256 qty;\n        address fromToken;\n        address toToken;\n        uint16 dstChainId;\n        uint16 srcPoolId;\n        uint16 dstPoolId;\n        address payable to;\n        address destStargateComposed;\n    }\n\n    /// @notice initializes state variables for the Stargate facet\n    /// @param _stargateRouter - address of the Stargate router contract\n    /// @param _chainId - current chain id\n\n    function sgInitialize(address _stargateRouter, uint16 _chainId) external {\n        if (_stargateRouter == address(0)) revert InvalidConfig();\n        LibDiamond.enforceIsContractOwner();\n        Storage storage s = getStorage();\n        s.stargateRouter = address(_stargateRouter);\n        s.chainId = _chainId;\n        s.slippage = 50; // equates to 0.5%\n        sgAddPool(1, 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, 1);\n        sgAddPool(1, 0xdAC17F958D2ee523a2206206994597C13D831ec7, 2);\n        sgAddPool(2, 0x55d398326f99059fF775485246999027B3197955, 2);\n        sgAddPool(2, 0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56, 5);\n        sgAddPool(6, 0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E, 1);\n        sgAddPool(6, 0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7, 2);\n        sgAddPool(9, 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174, 1);\n        sgAddPool(9, 0xc2132D05D31c914a87C6611C10748AEb04B58e8F, 2);\n        sgAddPool(10, 0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8, 1);\n        sgAddPool(10, 0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9, 2);\n        sgAddPool(11, 0x7F5c764cBc14f9669B88837ca1490cCa17c31607, 1);\n        sgAddPool(12, 0x04068DA6C83AFCFA0e13ba15A6696662335D5B75, 1);\n        emit SGInitialized(_stargateRouter, _chainId);\n    }\n\n    /// @param _sgData - struct containing information required to execute bridge\n    function sgBridgeTokens(StargateData memory _sgData)\n        external\n        payable\n        nonReentrant\n        returns (bool)\n    {\n        if (msg.value <= 0) revert NoMsgValueForCrossChainMessage();\n        if (_sgData.qty <= 0) revert InvalidAmount();\n        if (\n            _sgData.fromToken == address(0) ||\n            _sgData.toToken == address(0) ||\n            _sgData.to == address(0) ||\n            _sgData.destStargateComposed == address(0)\n        ) revert InvalidConfig();\n\n        // access storage\n        Storage storage s = getStorage();\n\n        if (!sgCheckPoolId(s.chainId, _sgData.fromToken, _sgData.srcPoolId))\n            revert InvalidSourcePoolId();\n        if (\n            !sgCheckPoolId(\n                _sgData.dstChainId,\n                _sgData.toToken,\n                _sgData.dstPoolId\n            )\n        ) revert InvalidDestinationPoolId();\n\n        // calculate slippage\n        uint256 minAmountOut = sgMinAmountOut(_sgData.qty);\n\n        // encode payload data to send to destination contract, which it will handle with sgReceive()\n        bytes memory payload = abi.encode(_sgData.to);\n\n        // this contract calls stargate swap()\n        IERC20(_sgData.fromToken).safeTransferFrom(\n            msg.sender,\n            address(this),\n            _sgData.qty\n        );\n\n        IERC20(_sgData.fromToken).safeApprove(\n            address(s.stargateRouter),\n            _sgData.qty\n        );\n\n        // Stargate's Router.swap() function sends the tokens to the destination chain.\n        IStargateRouter(s.stargateRouter).swap{value: msg.value}(\n            _sgData.dstChainId, // the destination chain id\n            _sgData.srcPoolId, // the source Stargate poolId\n            _sgData.dstPoolId, // the destination Stargate poolId\n            payable(msg.sender), // refund adddress. if msg.sender pays too much gas, return extra eth\n            _sgData.qty, // total tokens to send to destination chain\n            minAmountOut, // min amount allowed out\n            IStargateRouter.lzTxObj(200000, 0, \"0x\"), // default lzTxObj\n            abi.encodePacked(_sgData.destStargateComposed), // destination address, the sgReceive() implementer\n            payload // bytes payload\n        );\n\n        emit SGTransferStarted(\n            \"stargate\",\n            _sgData.fromToken,\n            _sgData.toToken,\n            msg.sender,\n            _sgData.to,\n            _sgData.qty,\n            _sgData.dstChainId\n        );\n\n        return true;\n    }\n\n    /// @param _chainId The remote chainId sending the tokens\n    /// @param _srcAddress The remote Bridge address\n    /// @param _nonce The message ordering nonce\n    /// @param _token The token contract on the local chain\n    /// @param amountLD The qty of local _token contract tokens\n    /// @param _payload The bytes containing the toAddress\n    function sgReceive(\n        uint16 _chainId,\n        bytes memory _srcAddress,\n        uint256 _nonce,\n        address _token,\n        uint256 amountLD,\n        bytes memory _payload\n    ) external override {\n        Storage storage s = getStorage();\n        if (msg.sender != address(s.stargateRouter))\n            revert SenderNotStargateRouter();\n\n        address _toAddr = abi.decode(_payload, (address));\n        IERC20(_token).transfer(_toAddr, amountLD);\n        emit SGReceivedOnDestination(_token, amountLD);\n    }\n\n    function sgCalculateFees(\n        uint16 _destChain,\n        address _receiver,\n        address _router\n    ) public view returns (uint256) {\n        (uint256 nativeFee, ) = IStargateRouter(_router).quoteLayerZeroFee(\n            _destChain, // destination chain id\n            1, // 1 = swap\n            abi.encodePacked(_receiver), // receiver on destination chain\n            \"0x\", // payload, using abi.encode()\n            IStargateRouter.lzTxObj(200000, 0, \"0x\")\n        );\n        return nativeFee;\n    }\n\n    function sgMinAmountOut(uint256 _amount) public view returns (uint256) {\n        Storage storage s = getStorage();\n        // equates to 0.5% slippage\n        return (_amount * (10000 - s.slippage)) / (10000);\n    }\n\n    function sgUpdateRouter(address _newAddress) external {\n        LibDiamond.enforceIsContractOwner();\n        if (_newAddress == address(0)) revert StargateRouterAddressZero();\n        Storage storage s = getStorage();\n        s.stargateRouter = address(_newAddress);\n        emit SGUpdatedRouter(_newAddress);\n    }\n\n    function sgUpdateSlippageTolerance(uint256 _newSlippage) external {\n        LibDiamond.enforceIsContractOwner();\n        Storage storage s = getStorage();\n        s.slippage = _newSlippage;\n        emit SGUpdatedSlippageTolerance(_newSlippage);\n    }\n\n    function sgWithdraw(\n        address _token,\n        address _user,\n        uint256 _amount\n    ) external payable nonReentrant {\n        LibDiamond.enforceIsContractOwner();\n        IERC20(_token).safeApprove(address(this), _amount);\n        IERC20(_token).safeTransferFrom(address(this), _user, _amount);\n    }\n\n    function sgAddPool(\n        uint16 _chainId,\n        address _token,\n        uint256 _poolId\n    ) public {\n        LibDiamond.enforceIsContractOwner();\n        Storage storage s = getStorage();\n        s.poolIds[_chainId][_token] = _poolId;\n        emit SGAddedPool(_chainId, _token, _poolId);\n    }\n\n    function sgCheckPoolId(\n        uint16 _chainId,\n        address _token,\n        uint256 _poolId\n    ) public view returns (bool) {\n        Storage storage s = getStorage();\n        return s.poolIds[_chainId][_token] == _poolId ? true : false;\n    }\n\n    receive() external payable {}\n\n    //////////////////////////////////////////////////////////////\n    ////////////////////// Private Functions /////////////////////\n    //////////////////////////////////////////////////////////////\n\n    /// @dev fetch local storage\n    function getStorage() private pure returns (Storage storage s) {\n        bytes32 namespace = NAMESPACE;\n        // solhint-disable-next-line no-inline-assembly\n        assembly {\n            s.slot := namespace\n        }\n    }\n}\n"
			},
			"hardhat/console.sol": {
				"content": "// SPDX-License-Identifier: MIT\npragma solidity >= 0.4.22 <0.9.0;\n\nlibrary console {\n\taddress constant CONSOLE_ADDRESS = address(0x000000000000000000636F6e736F6c652e6c6f67);\n\n\tfunction _sendLogPayload(bytes memory payload) private view {\n\t\tuint256 payloadLength = payload.length;\n\t\taddress consoleAddress = CONSOLE_ADDRESS;\n\t\tassembly {\n\t\t\tlet payloadStart := add(payload, 32)\n\t\t\tlet r := staticcall(gas(), consoleAddress, payloadStart, payloadLength, 0, 0)\n\t\t}\n\t}\n\n\tfunction log() internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log()\"));\n\t}\n\n\tfunction logInt(int p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(int)\", p0));\n\t}\n\n\tfunction logUint(uint p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint)\", p0));\n\t}\n\n\tfunction logString(string memory p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string)\", p0));\n\t}\n\n\tfunction logBool(bool p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool)\", p0));\n\t}\n\n\tfunction logAddress(address p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address)\", p0));\n\t}\n\n\tfunction logBytes(bytes memory p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes)\", p0));\n\t}\n\n\tfunction logBytes1(bytes1 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes1)\", p0));\n\t}\n\n\tfunction logBytes2(bytes2 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes2)\", p0));\n\t}\n\n\tfunction logBytes3(bytes3 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes3)\", p0));\n\t}\n\n\tfunction logBytes4(bytes4 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes4)\", p0));\n\t}\n\n\tfunction logBytes5(bytes5 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes5)\", p0));\n\t}\n\n\tfunction logBytes6(bytes6 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes6)\", p0));\n\t}\n\n\tfunction logBytes7(bytes7 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes7)\", p0));\n\t}\n\n\tfunction logBytes8(bytes8 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes8)\", p0));\n\t}\n\n\tfunction logBytes9(bytes9 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes9)\", p0));\n\t}\n\n\tfunction logBytes10(bytes10 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes10)\", p0));\n\t}\n\n\tfunction logBytes11(bytes11 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes11)\", p0));\n\t}\n\n\tfunction logBytes12(bytes12 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes12)\", p0));\n\t}\n\n\tfunction logBytes13(bytes13 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes13)\", p0));\n\t}\n\n\tfunction logBytes14(bytes14 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes14)\", p0));\n\t}\n\n\tfunction logBytes15(bytes15 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes15)\", p0));\n\t}\n\n\tfunction logBytes16(bytes16 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes16)\", p0));\n\t}\n\n\tfunction logBytes17(bytes17 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes17)\", p0));\n\t}\n\n\tfunction logBytes18(bytes18 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes18)\", p0));\n\t}\n\n\tfunction logBytes19(bytes19 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes19)\", p0));\n\t}\n\n\tfunction logBytes20(bytes20 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes20)\", p0));\n\t}\n\n\tfunction logBytes21(bytes21 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes21)\", p0));\n\t}\n\n\tfunction logBytes22(bytes22 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes22)\", p0));\n\t}\n\n\tfunction logBytes23(bytes23 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes23)\", p0));\n\t}\n\n\tfunction logBytes24(bytes24 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes24)\", p0));\n\t}\n\n\tfunction logBytes25(bytes25 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes25)\", p0));\n\t}\n\n\tfunction logBytes26(bytes26 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes26)\", p0));\n\t}\n\n\tfunction logBytes27(bytes27 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes27)\", p0));\n\t}\n\n\tfunction logBytes28(bytes28 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes28)\", p0));\n\t}\n\n\tfunction logBytes29(bytes29 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes29)\", p0));\n\t}\n\n\tfunction logBytes30(bytes30 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes30)\", p0));\n\t}\n\n\tfunction logBytes31(bytes31 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes31)\", p0));\n\t}\n\n\tfunction logBytes32(bytes32 p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bytes32)\", p0));\n\t}\n\n\tfunction log(uint p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint)\", p0));\n\t}\n\n\tfunction log(string memory p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string)\", p0));\n\t}\n\n\tfunction log(bool p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool)\", p0));\n\t}\n\n\tfunction log(address p0) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address)\", p0));\n\t}\n\n\tfunction log(uint p0, uint p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint)\", p0, p1));\n\t}\n\n\tfunction log(uint p0, string memory p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string)\", p0, p1));\n\t}\n\n\tfunction log(uint p0, bool p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool)\", p0, p1));\n\t}\n\n\tfunction log(uint p0, address p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address)\", p0, p1));\n\t}\n\n\tfunction log(string memory p0, uint p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint)\", p0, p1));\n\t}\n\n\tfunction log(string memory p0, string memory p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string)\", p0, p1));\n\t}\n\n\tfunction log(string memory p0, bool p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool)\", p0, p1));\n\t}\n\n\tfunction log(string memory p0, address p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address)\", p0, p1));\n\t}\n\n\tfunction log(bool p0, uint p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint)\", p0, p1));\n\t}\n\n\tfunction log(bool p0, string memory p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string)\", p0, p1));\n\t}\n\n\tfunction log(bool p0, bool p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool)\", p0, p1));\n\t}\n\n\tfunction log(bool p0, address p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address)\", p0, p1));\n\t}\n\n\tfunction log(address p0, uint p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint)\", p0, p1));\n\t}\n\n\tfunction log(address p0, string memory p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string)\", p0, p1));\n\t}\n\n\tfunction log(address p0, bool p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool)\", p0, p1));\n\t}\n\n\tfunction log(address p0, address p1) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address)\", p0, p1));\n\t}\n\n\tfunction log(uint p0, uint p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, uint p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, uint p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, uint p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, string memory p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, string memory p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, string memory p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, string memory p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, bool p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, bool p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, bool p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, bool p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, address p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, address p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, address p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, address p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, uint p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, uint p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, uint p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, uint p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, string memory p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, string memory p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, string memory p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, string memory p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, bool p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, bool p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, bool p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, bool p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, address p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, address p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, address p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(string memory p0, address p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, uint p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, uint p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, uint p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, uint p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, string memory p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, string memory p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, string memory p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, string memory p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, bool p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, bool p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, bool p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, bool p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, address p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, address p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, address p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(bool p0, address p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, uint p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, uint p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, uint p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, uint p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, string memory p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, string memory p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, string memory p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, string memory p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, bool p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, bool p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, bool p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, bool p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, address p1, uint p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, address p1, string memory p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,string)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, address p1, bool p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool)\", p0, p1, p2));\n\t}\n\n\tfunction log(address p0, address p1, address p2) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,address)\", p0, p1, p2));\n\t}\n\n\tfunction log(uint p0, uint p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, uint p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, uint p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, uint p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, uint p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, uint p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, uint p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, uint p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, uint p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, uint p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, uint p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, uint p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, uint p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, uint p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, uint p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, uint p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,uint,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, string memory p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,string,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, bool p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,bool,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(uint p0, address p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(uint,address,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, uint p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,uint,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, string memory p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, bool p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(string memory p0, address p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, uint p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,uint,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, string memory p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, bool p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(bool p0, address p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, uint p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,uint,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, string memory p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, bool p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, uint p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, uint p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, uint p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, uint p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, string memory p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, string memory p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, string memory p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, string memory p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, bool p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, bool p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, bool p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, bool p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,address)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, address p2, uint p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,uint)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, address p2, string memory p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,string)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, address p2, bool p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,bool)\", p0, p1, p2, p3));\n\t}\n\n\tfunction log(address p0, address p1, address p2, address p3) internal view {\n\t\t_sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,address)\", p0, p1, p2, p3));\n\t}\n\n}\n"
			},
			"bridges/libs/LibDiamond.sol": {
				"content": "// SPDX-License-Identifier: MIT\npragma solidity >=0.8.4 <0.9.0;\n\nimport { IDiamondCut } from \"../interfaces/IDiamondCut.sol\";\n\nlibrary LibDiamond {\n  bytes32 internal constant DIAMOND_STORAGE_POSITION = keccak256(\"diamond.standard.diamond.storage\");\n\n  struct FacetAddressAndPosition {\n    address facetAddress;\n    uint96 functionSelectorPosition; // position in facetFunctionSelectors.functionSelectors array\n  }\n\n  struct FacetFunctionSelectors {\n    bytes4[] functionSelectors;\n    uint256 facetAddressPosition; // position of facetAddress in facetAddresses array\n  }\n\n  struct DiamondStorage {\n    // maps function selector to the facet address and\n    // the position of the selector in the facetFunctionSelectors.selectors array\n    mapping(bytes4 => FacetAddressAndPosition) selectorToFacetAndPosition;\n    // maps facet addresses to function selectors\n    mapping(address => FacetFunctionSelectors) facetFunctionSelectors;\n    // facet addresses\n    address[] facetAddresses;\n    // Used to query if a contract implements an interface.\n    // Used to implement ERC-165.\n    mapping(bytes4 => bool) supportedInterfaces;\n    // owner of the contract\n    address contractOwner;\n  }\n\n  function diamondStorage() internal pure returns (DiamondStorage storage ds) {\n    bytes32 position = DIAMOND_STORAGE_POSITION;\n    // solhint-disable-next-line no-inline-assembly\n    assembly {\n        ds.slot := position\n    }\n  }\n\n  event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n  function setContractOwner(address _newOwner) internal {\n    DiamondStorage storage ds = diamondStorage();\n    address previousOwner = ds.contractOwner;\n    ds.contractOwner = _newOwner;\n    emit OwnershipTransferred(previousOwner, _newOwner);\n  }\n\n  function contractOwner() internal view returns (address contractOwner_) {\n    contractOwner_ = diamondStorage().contractOwner;\n  }\n\n  function enforceIsContractOwner() internal view {\n    require(msg.sender == diamondStorage().contractOwner, \"LibDiamond: Must be contract owner\");\n  }\n\n  event DiamondCut(IDiamondCut.FacetCut[] _diamondCut, address _init, bytes _calldata);\n\n  // Internal function version of diamondCut\n  function diamondCut(\n    IDiamondCut.FacetCut[] memory _diamondCut,\n    address _init,\n    bytes memory _calldata\n  ) internal {\n    for (uint256 facetIndex; facetIndex < _diamondCut.length; facetIndex++) {\n      IDiamondCut.FacetCutAction action = _diamondCut[facetIndex].action;\n      if (action == IDiamondCut.FacetCutAction.Add) {\n        addFunctions(_diamondCut[facetIndex].facetAddress, _diamondCut[facetIndex].functionSelectors);\n      } else if (action == IDiamondCut.FacetCutAction.Replace) {\n        replaceFunctions(_diamondCut[facetIndex].facetAddress, _diamondCut[facetIndex].functionSelectors);\n      } else if (action == IDiamondCut.FacetCutAction.Remove) {\n        removeFunctions(_diamondCut[facetIndex].facetAddress, _diamondCut[facetIndex].functionSelectors);\n      } else {\n        revert(\"LibDiamondCut: Incorrect FacetCutAction\");\n      }\n    }\n    emit DiamondCut(_diamondCut, _init, _calldata);\n    initializeDiamondCut(_init, _calldata);\n  }\n\n  function addFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal {\n    require(_functionSelectors.length > 0, \"LibDiamondCut: No selectors in facet to cut\");\n    DiamondStorage storage ds = diamondStorage();\n    require(_facetAddress != address(0), \"LibDiamondCut: Add facet can't be address(0)\");\n    uint96 selectorPosition = uint96(ds.facetFunctionSelectors[_facetAddress].functionSelectors.length);\n    // add new facet address if it does not exist\n    if (selectorPosition == 0) {\n      addFacet(ds, _facetAddress);\n    }\n    for (uint256 selectorIndex; selectorIndex < _functionSelectors.length; selectorIndex++) {\n      bytes4 selector = _functionSelectors[selectorIndex];\n      address oldFacetAddress = ds.selectorToFacetAndPosition[selector].facetAddress;\n      require(oldFacetAddress == address(0), \"LibDiamondCut: Can't add function that already exists\");\n      addFunction(ds, selector, selectorPosition, _facetAddress);\n      selectorPosition++;\n    }\n  }\n\n  function replaceFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal {\n    require(_functionSelectors.length > 0, \"LibDiamondCut: No selectors in facet to cut\");\n    DiamondStorage storage ds = diamondStorage();\n    require(_facetAddress != address(0), \"LibDiamondCut: Add facet can't be address(0)\");\n    uint96 selectorPosition = uint96(ds.facetFunctionSelectors[_facetAddress].functionSelectors.length);\n    // add new facet address if it does not exist\n    if (selectorPosition == 0) {\n      addFacet(ds, _facetAddress);\n    }\n    for (uint256 selectorIndex; selectorIndex < _functionSelectors.length; selectorIndex++) {\n      bytes4 selector = _functionSelectors[selectorIndex];\n      address oldFacetAddress = ds.selectorToFacetAndPosition[selector].facetAddress;\n      require(oldFacetAddress != _facetAddress, \"LibDiamondCut: Can't replace function with same function\");\n      removeFunction(ds, oldFacetAddress, selector);\n      addFunction(ds, selector, selectorPosition, _facetAddress);\n      selectorPosition++;\n    }\n  }\n\n  function removeFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal {\n    require(_functionSelectors.length > 0, \"LibDiamondCut: No selectors in facet to cut\");\n    DiamondStorage storage ds = diamondStorage();\n    // if function does not exist then do nothing and return\n    require(_facetAddress == address(0), \"LibDiamondCut: Remove facet address must be address(0)\");\n    for (uint256 selectorIndex; selectorIndex < _functionSelectors.length; selectorIndex++) {\n      bytes4 selector = _functionSelectors[selectorIndex];\n      address oldFacetAddress = ds.selectorToFacetAndPosition[selector].facetAddress;\n      removeFunction(ds, oldFacetAddress, selector);\n    }\n  }\n\n  function addFacet(DiamondStorage storage ds, address _facetAddress) internal {\n    enforceHasContractCode(_facetAddress, \"LibDiamondCut: New facet has no code\");\n    ds.facetFunctionSelectors[_facetAddress].facetAddressPosition = ds.facetAddresses.length;\n    ds.facetAddresses.push(_facetAddress);\n  }\n\n  function addFunction(\n    DiamondStorage storage ds,\n    bytes4 _selector,\n    uint96 _selectorPosition,\n    address _facetAddress\n  ) internal {\n    ds.selectorToFacetAndPosition[_selector].functionSelectorPosition = _selectorPosition;\n    ds.facetFunctionSelectors[_facetAddress].functionSelectors.push(_selector);\n    ds.selectorToFacetAndPosition[_selector].facetAddress = _facetAddress;\n  }\n\n  function removeFunction(\n    DiamondStorage storage ds,\n    address _facetAddress,\n    bytes4 _selector\n  ) internal {\n    require(_facetAddress != address(0), \"LibDiamondCut: Can't remove function that doesn't exist\");\n    // an immutable function is a function defined directly in a diamond\n    require(_facetAddress != address(this), \"LibDiamondCut: Can't remove immutable function\");\n    // replace selector with last selector, then delete last selector\n    uint256 selectorPosition = ds.selectorToFacetAndPosition[_selector].functionSelectorPosition;\n    uint256 lastSelectorPosition = ds.facetFunctionSelectors[_facetAddress].functionSelectors.length - 1;\n    // if not the same then replace _selector with lastSelector\n    if (selectorPosition != lastSelectorPosition) {\n      bytes4 lastSelector = ds.facetFunctionSelectors[_facetAddress].functionSelectors[lastSelectorPosition];\n      ds.facetFunctionSelectors[_facetAddress].functionSelectors[selectorPosition] = lastSelector;\n      ds.selectorToFacetAndPosition[lastSelector].functionSelectorPosition = uint96(selectorPosition);\n    }\n    // delete the last selector\n    ds.facetFunctionSelectors[_facetAddress].functionSelectors.pop();\n    delete ds.selectorToFacetAndPosition[_selector];\n\n    // if no more selectors for facet address then delete the facet address\n    if (lastSelectorPosition == 0) {\n      // replace facet address with last facet address and delete last facet address\n      uint256 lastFacetAddressPosition = ds.facetAddresses.length - 1;\n      uint256 facetAddressPosition = ds.facetFunctionSelectors[_facetAddress].facetAddressPosition;\n      if (facetAddressPosition != lastFacetAddressPosition) {\n        address lastFacetAddress = ds.facetAddresses[lastFacetAddressPosition];\n        ds.facetAddresses[facetAddressPosition] = lastFacetAddress;\n        ds.facetFunctionSelectors[lastFacetAddress].facetAddressPosition = facetAddressPosition;\n      }\n      ds.facetAddresses.pop();\n      delete ds.facetFunctionSelectors[_facetAddress].facetAddressPosition;\n    }\n  }\n\n  function initializeDiamondCut(address _init, bytes memory _calldata) internal {\n    if (_init == address(0)) {\n      require(_calldata.length == 0, \"LibDiamondCut: _init is address(0) but_calldata is not empty\");\n    } else {\n      require(_calldata.length > 0, \"LibDiamondCut: _calldata is empty but _init is not address(0)\");\n      if (_init != address(this)) {\n        enforceHasContractCode(_init, \"LibDiamondCut: _init address has no code\");\n      }\n      // solhint-disable-next-line avoid-low-level-calls\n      (bool success, bytes memory error) = _init.delegatecall(_calldata);\n      if (!success) {\n        if (error.length > 0) {\n          // bubble up the error\n          revert(string(error));\n        } else {\n          revert(\"LibDiamondCut: _init function reverted\");\n        }\n      }\n    }\n  }\n\n  function enforceHasContractCode(address _contract, string memory _errorMessage) internal view {\n    uint256 contractSize;\n    // solhint-disable-next-line no-inline-assembly\n    assembly {\n      contractSize := extcodesize(_contract)\n    }\n    require(contractSize > 0, _errorMessage);\n  }\n}\n"
			},
			"bridges/errors/StargateErrors.sol": {
				"content": "// SPDX-License-Identifier: MIT\n// solhint-disable-next-line\npragma solidity 0.8.4;\n\nerror SenderNotStargateRouter();\nerror NoMsgValueForCrossChainMessage();\nerror StargateRouterAddressZero();\nerror InvalidSourcePoolId();\nerror InvalidDestinationPoolId();\n"
			},
			"bridges/errors/GenericErrors.sol": {
				"content": "// SPDX-License-Identifier: MIT\n// solhint-disable-next-line\npragma solidity 0.8.4;\n\nerror InvalidAmount();\nerror TokenAddressIsZero();\nerror CannotBridgeToSameNetwork();\nerror ZeroPostSwapBalance();\nerror InvalidBridgeConfigLength();\nerror NoSwapDataProvided();\nerror NativeValueWithERC();\nerror ContractCallNotAllowed();\nerror NullAddrIsNotAValidSpender();\nerror NullAddrIsNotAnERC20Token();\nerror NoTransferToNullAddress();\nerror NativeAssetTransferFailed();\nerror InvalidContract();\nerror InvalidConfig();\n"
			},
			"bridges/helpers/ReentrancyGuard.sol": {
				"content": "// SPDX-License-Identifier: UNLICENSED\npragma solidity 0.8.4;\n\n/// @title Reentrancy Guard\n/// @author LI.FI (https://li.fi)\n/// @notice Abstract contract to provide protection against reentrancy\nabstract contract ReentrancyGuard {\n    /// Storage ///\n\n    bytes32 private constant NAMESPACE =\n        hex\"a65bb2f450488ab0858c00edc14abc5297769bf42adb48cfb77752890e8b697b\";\n\n    /// Types ///\n\n    struct ReentrancyStorage {\n        uint256 status;\n    }\n\n    /// Errors ///\n\n    error ReentrancyError();\n\n    /// Constants ///\n\n    uint256 private constant _NOT_ENTERED = 0;\n    uint256 private constant _ENTERED = 1;\n\n    /// Modifiers ///\n\n    modifier nonReentrant() {\n        ReentrancyStorage storage s = reentrancyStorage();\n        if (s.status == _ENTERED) revert ReentrancyError();\n        s.status = _ENTERED;\n        _;\n        s.status = _NOT_ENTERED;\n    }\n\n    /// Private Methods ///\n\n    /// @dev fetch local storage\n    function reentrancyStorage()\n        private\n        pure\n        returns (ReentrancyStorage storage data)\n    {\n        bytes32 position = NAMESPACE;\n        // solhint-disable-next-line no-inline-assembly\n        assembly {\n            data.slot := position\n        }\n    }\n}\n"
			},
			"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol": {
				"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (token/ERC20/utils/SafeERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\nimport \"../extensions/draft-IERC20Permit.sol\";\nimport \"../../../utils/Address.sol\";\n\n/**\n * @title SafeERC20\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\n * contract returns false). Tokens that return no value (and instead revert or\n * throw on failure) are also supported, non-reverting calls are assumed to be\n * successful.\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\n */\nlibrary SafeERC20 {\n    using Address for address;\n\n    function safeTransfer(\n        IERC20 token,\n        address to,\n        uint256 value\n    ) internal {\n        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));\n    }\n\n    function safeTransferFrom(\n        IERC20 token,\n        address from,\n        address to,\n        uint256 value\n    ) internal {\n        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));\n    }\n\n    /**\n     * @dev Deprecated. This function has issues similar to the ones found in\n     * {IERC20-approve}, and its usage is discouraged.\n     *\n     * Whenever possible, use {safeIncreaseAllowance} and\n     * {safeDecreaseAllowance} instead.\n     */\n    function safeApprove(\n        IERC20 token,\n        address spender,\n        uint256 value\n    ) internal {\n        // safeApprove should only be called when setting an initial allowance,\n        // or when resetting it to zero. To increase and decrease it, use\n        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'\n        require(\n            (value == 0) || (token.allowance(address(this), spender) == 0),\n            \"SafeERC20: approve from non-zero to non-zero allowance\"\n        );\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));\n    }\n\n    function safeIncreaseAllowance(\n        IERC20 token,\n        address spender,\n        uint256 value\n    ) internal {\n        uint256 newAllowance = token.allowance(address(this), spender) + value;\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\n    }\n\n    function safeDecreaseAllowance(\n        IERC20 token,\n        address spender,\n        uint256 value\n    ) internal {\n        unchecked {\n            uint256 oldAllowance = token.allowance(address(this), spender);\n            require(oldAllowance >= value, \"SafeERC20: decreased allowance below zero\");\n            uint256 newAllowance = oldAllowance - value;\n            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\n        }\n    }\n\n    function safePermit(\n        IERC20Permit token,\n        address owner,\n        address spender,\n        uint256 value,\n        uint256 deadline,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) internal {\n        uint256 nonceBefore = token.nonces(owner);\n        token.permit(owner, spender, value, deadline, v, r, s);\n        uint256 nonceAfter = token.nonces(owner);\n        require(nonceAfter == nonceBefore + 1, \"SafeERC20: permit did not succeed\");\n    }\n\n    /**\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\n     * @param token The token targeted by the call.\n     * @param data The call data (encoded using abi.encode or one of its variants).\n     */\n    function _callOptionalReturn(IERC20 token, bytes memory data) private {\n        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\n        // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that\n        // the target address contains contract code and also asserts for success in the low-level call.\n\n        bytes memory returndata = address(token).functionCall(data, \"SafeERC20: low-level call failed\");\n        if (returndata.length > 0) {\n            // Return data is optional\n            require(abi.decode(returndata, (bool)), \"SafeERC20: ERC20 operation did not succeed\");\n        }\n    }\n}\n"
			},
			"@openzeppelin/contracts/token/ERC20/IERC20.sol": {
				"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n    /**\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\n     * another (`to`).\n     *\n     * Note that `value` may be zero.\n     */\n    event Transfer(address indexed from, address indexed to, uint256 value);\n\n    /**\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n     * a call to {approve}. `value` is the new allowance.\n     */\n    event Approval(address indexed owner, address indexed spender, uint256 value);\n\n    /**\n     * @dev Returns the amount of tokens in existence.\n     */\n    function totalSupply() external view returns (uint256);\n\n    /**\n     * @dev Returns the amount of tokens owned by `account`.\n     */\n    function balanceOf(address account) external view returns (uint256);\n\n    /**\n     * @dev Moves `amount` tokens from the caller's account to `to`.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * Emits a {Transfer} event.\n     */\n    function transfer(address to, uint256 amount) external returns (bool);\n\n    /**\n     * @dev Returns the remaining number of tokens that `spender` will be\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\n     * zero by default.\n     *\n     * This value changes when {approve} or {transferFrom} are called.\n     */\n    function allowance(address owner, address spender) external view returns (uint256);\n\n    /**\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\n     * that someone may use both the old and the new allowance by unfortunate\n     * transaction ordering. One possible solution to mitigate this race\n     * condition is to first reduce the spender's allowance to 0 and set the\n     * desired value afterwards:\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n     *\n     * Emits an {Approval} event.\n     */\n    function approve(address spender, uint256 amount) external returns (bool);\n\n    /**\n     * @dev Moves `amount` tokens from `from` to `to` using the\n     * allowance mechanism. `amount` is then deducted from the caller's\n     * allowance.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * Emits a {Transfer} event.\n     */\n    function transferFrom(\n        address from,\n        address to,\n        uint256 amount\n    ) external returns (bool);\n}\n"
			},
			"bridges/interfaces/IStargateReceiver.sol": {
				"content": "// SPDX-License-Identifier: MIT\n\npragma solidity 0.8.4;\n\ninterface IStargateReceiver {\n    function sgReceive(\n        uint16 _srcChainId, // the remote chainId sending the tokens\n        bytes memory _srcAddress, // the remote Bridge address\n        uint256 _nonce,\n        address _token, // the token contract on the local chain\n        uint256 amountLD, // the qty of local _token contract tokens\n        bytes memory payload\n    ) external;\n}\n"
			},
			"bridges/interfaces/IStargateRouter.sol": {
				"content": "// SPDX-License-Identifier:MIT\n\npragma solidity 0.8.4;\npragma abicoder v2;\n\ninterface IStargateRouter {\n    struct lzTxObj {\n        uint256 dstGasForCall;\n        uint256 dstNativeAmount;\n        bytes dstNativeAddr;\n    }\n\n    function addLiquidity(\n        uint256 _poolId,\n        uint256 _amountLD,\n        address _to\n    ) external;\n\n    function swap(\n        uint16 _dstChainId,\n        uint256 _srcPoolId,\n        uint256 _dstPoolId,\n        address payable _refundAddress,\n        uint256 _amountLD,\n        uint256 _minAmountLD,\n        lzTxObj memory _lzTxParams,\n        bytes calldata _to,\n        bytes calldata _payload\n    ) external payable;\n\n    function redeemRemote(\n        uint16 _dstChainId,\n        uint256 _srcPoolId,\n        uint256 _dstPoolId,\n        address payable _refundAddress,\n        uint256 _amountLP,\n        uint256 _minAmountLD,\n        bytes calldata _to,\n        lzTxObj memory _lzTxParams\n    ) external payable;\n\n    function instantRedeemLocal(\n        uint16 _srcPoolId,\n        uint256 _amountLP,\n        address _to\n    ) external returns (uint256);\n\n    function redeemLocal(\n        uint16 _dstChainId,\n        uint256 _srcPoolId,\n        uint256 _dstPoolId,\n        address payable _refundAddress,\n        uint256 _amountLP,\n        bytes calldata _to,\n        lzTxObj memory _lzTxParams\n    ) external payable;\n\n    function sendCredits(\n        uint16 _dstChainId,\n        uint256 _srcPoolId,\n        uint256 _dstPoolId,\n        address payable _refundAddress\n    ) external payable;\n\n    function quoteLayerZeroFee(\n        uint16 _dstChainId,\n        uint8 _functionType,\n        bytes calldata _toAddress,\n        bytes calldata _transferAndCallPayload,\n        lzTxObj memory _lzTxParams\n    ) external view returns (uint256, uint256);\n}\n"
			},
			"bridges/interfaces/IDiamondCut.sol": {
				"content": "// SPDX-License-Identifier: MIT\npragma solidity >=0.8.4 <0.9.0;\n\ninterface IDiamondCut {\n  enum FacetCutAction {\n    Add,\n    Replace,\n    Remove\n  }\n  // Add=0, Replace=1, Remove=2\n\n  struct FacetCut {\n    address facetAddress;\n    FacetCutAction action;\n    bytes4[] functionSelectors;\n  }\n\n  /// @notice Add/replace/remove any number of functions and optionally execute\n  ///         a function with delegatecall\n  /// @param _diamondCut Contains the facet addresses and function selectors\n  /// @param _init The address of the contract or facet to execute _calldata\n  /// @param _calldata A function call, including function selector and arguments\n  ///                  _calldata is executed with delegatecall on _init\n  function diamondCut(\n    FacetCut[] calldata _diamondCut,\n    address _init,\n    bytes calldata _calldata\n  ) external;\n\n  event DiamondCut(FacetCut[] _diamondCut, address _init, bytes _calldata);\n}\n"
			},
			"@openzeppelin/contracts/utils/Address.sol": {
				"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.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                /// @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}\n"
			},
			"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol": {
				"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/draft-IERC20Permit.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n *\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n * need to send a transaction, and thus is not required to hold Ether at all.\n */\ninterface IERC20Permit {\n    /**\n     * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n     * given ``owner``'s signed approval.\n     *\n     * IMPORTANT: The same issues {IERC20-approve} has related to transaction\n     * ordering also apply here.\n     *\n     * Emits an {Approval} event.\n     *\n     * Requirements:\n     *\n     * - `spender` cannot be the zero address.\n     * - `deadline` must be a timestamp in the future.\n     * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n     * over the EIP712-formatted function arguments.\n     * - the signature must use ``owner``'s current nonce (see {nonces}).\n     *\n     * For more information on the signature format, see the\n     * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n     * section].\n     */\n    function permit(\n        address owner,\n        address spender,\n        uint256 value,\n        uint256 deadline,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) external;\n\n    /**\n     * @dev Returns the current nonce for `owner`. This value must be\n     * included whenever a signature is generated for {permit}.\n     *\n     * Every successful call to {permit} increases ``owner``'s nonce by one. This\n     * prevents a signature from being used multiple times.\n     */\n    function nonces(address owner) external view returns (uint256);\n\n    /**\n     * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\n     */\n    // solhint-disable-next-line func-name-mixedcase\n    function DOMAIN_SEPARATOR() external view returns (bytes32);\n}\n"
			}
		},
		"settings": {
			"optimizer": {
				"enabled": false,
				"runs": 200
			},
			"outputSelection": {
				"*": {
					"": [
						"ast"
					],
					"*": [
						"abi",
						"metadata",
						"devdoc",
						"userdoc",
						"storageLayout",
						"evm.legacyAssembly",
						"evm.bytecode",
						"evm.deployedBytecode",
						"evm.methodIdentifiers",
						"evm.gasEstimates",
						"evm.assembly"
					]
				}
			}
		}
	},
	"output": {
		"contracts": {
			"@openzeppelin/contracts/token/ERC20/IERC20.sol": {
				"IERC20": {
					"abi": [
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": true,
									"internalType": "address",
									"name": "owner",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "address",
									"name": "spender",
									"type": "address"
								},
								{
									"indexed": false,
									"internalType": "uint256",
									"name": "value",
									"type": "uint256"
								}
							],
							"name": "Approval",
							"type": "event"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": true,
									"internalType": "address",
									"name": "from",
									"type": "address"
								},
								{
									"indexed": true,
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"indexed": false,
									"internalType": "uint256",
									"name": "value",
									"type": "uint256"
								}
							],
							"name": "Transfer",
							"type": "event"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "owner",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "spender",
									"type": "address"
								}
							],
							"name": "allowance",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "spender",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "amount",
									"type": "uint256"
								}
							],
							"name": "approve",
							"outputs": [
								{
									"internalType": "bool",
									"name": "",
									"type": "bool"
								}
							],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "account",
									"type": "address"
								}
							],
							"name": "balanceOf",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "totalSupply",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "amount",
									"type": "uint256"
								}
							],
							"name": "transfer",
							"outputs": [
								{
									"internalType": "bool",
									"name": "",
									"type": "bool"
								}
							],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "from",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "amount",
									"type": "uint256"
								}
							],
							"name": "transferFrom",
							"outputs": [
								{
									"internalType": "bool",
									"name": "",
									"type": "bool"
								}
							],
							"stateMutability": "nonpayable",
							"type": "function"
						}
					],
					"devdoc": {
						"details": "Interface of the ERC20 standard as defined in the EIP.",
						"events": {
							"Approval(address,address,uint256)": {
								"details": "Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."
							},
							"Transfer(address,address,uint256)": {
								"details": "Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."
							}
						},
						"kind": "dev",
						"methods": {
							"allowance(address,address)": {
								"details": "Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."
							},
							"approve(address,uint256)": {
								"details": "Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."
							},
							"balanceOf(address)": {
								"details": "Returns the amount of tokens owned by `account`."
							},
							"totalSupply()": {
								"details": "Returns the amount of tokens in existence."
							},
							"transfer(address,uint256)": {
								"details": "Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."
							},
							"transferFrom(address,address,uint256)": {
								"details": "Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."
							}
						},
						"version": 1
					},
					"evm": {
						"assembly": "",
						"bytecode": {
							"generatedSources": [],
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"deployedBytecode": {
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"gasEstimates": null,
						"legacyAssembly": null,
						"methodIdentifiers": {
							"allowance(address,address)": "dd62ed3e",
							"approve(address,uint256)": "095ea7b3",
							"balanceOf(address)": "70a08231",
							"totalSupply()": "18160ddd",
							"transfer(address,uint256)": "a9059cbb",
							"transferFrom(address,address,uint256)": "23b872dd"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol": {
				"IERC20Permit": {
					"abi": [
						{
							"inputs": [],
							"name": "DOMAIN_SEPARATOR",
							"outputs": [
								{
									"internalType": "bytes32",
									"name": "",
									"type": "bytes32"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "owner",
									"type": "address"
								}
							],
							"name": "nonces",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "owner",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "spender",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "value",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "deadline",
									"type": "uint256"
								},
								{
									"internalType": "uint8",
									"name": "v",
									"type": "uint8"
								},
								{
									"internalType": "bytes32",
									"name": "r",
									"type": "bytes32"
								},
								{
									"internalType": "bytes32",
									"name": "s",
									"type": "bytes32"
								}
							],
							"name": "permit",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						}
					],
					"devdoc": {
						"details": "Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all.",
						"kind": "dev",
						"methods": {
							"DOMAIN_SEPARATOR()": {
								"details": "Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."
							},
							"nonces(address)": {
								"details": "Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times."
							},
							"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)": {
								"details": "Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]."
							}
						},
						"version": 1
					},
					"evm": {
						"assembly": "",
						"bytecode": {
							"generatedSources": [],
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"deployedBytecode": {
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"gasEstimates": null,
						"legacyAssembly": null,
						"methodIdentifiers": {
							"DOMAIN_SEPARATOR()": "3644e515",
							"nonces(address)": "7ecebe00",
							"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)": "d505accf"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all.\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section].\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol": {
				"SafeERC20": {
					"abi": [],
					"devdoc": {
						"details": "Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.",
						"kind": "dev",
						"methods": {},
						"title": "SafeERC20",
						"version": 1
					},
					"evm": {
						"assembly": "    /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":707:4455  library SafeERC20 {... */\n  dataSize(sub_0)\n  dataOffset(sub_0)\n  0x0b\n  dup3\n  dup3\n  dup3\n  codecopy\n  dup1\n  mload\n  0x00\n  byte\n  0x73\n  eq\n  tag_1\n  jumpi\n  mstore(0x00, 0x4e487b7100000000000000000000000000000000000000000000000000000000)\n  mstore(0x04, 0x00)\n  revert(0x00, 0x24)\ntag_1:\n  mstore(0x00, address)\n  0x73\n  dup2\n  mstore8\n  dup3\n  dup2\n  return\nstop\n\nsub_0: assembly {\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":707:4455  library SafeERC20 {... */\n      eq(address, deployTimeAddress())\n      mstore(0x40, 0x80)\n      0x00\n      dup1\n      revert\n\n    auxdata: 0xa2646970667358221220be9d25fc546cf92b455c93e1dc51b6d81d550e7678c2366b7be901958201f50a64736f6c63430008040033\n}\n",
						"bytecode": {
							"generatedSources": [],
							"linkReferences": {},
							"object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220be9d25fc546cf92b455c93e1dc51b6d81d550e7678c2366b7be901958201f50a64736f6c63430008040033",
							"opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 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 0xBE SWAP14 0x25 0xFC SLOAD PUSH13 0xF92B455C93E1DC51B6D81D550E PUSH23 0x78C2366B7BE901958201F50A64736F6C63430008040033 ",
							"sourceMap": "707:3748:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
						},
						"deployedBytecode": {
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220be9d25fc546cf92b455c93e1dc51b6d81d550e7678c2366b7be901958201f50a64736f6c63430008040033",
							"opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBE SWAP14 0x25 0xFC SLOAD PUSH13 0xF92B455C93E1DC51B6D81D550E PUSH23 0x78C2366B7BE901958201F50A64736F6C63430008040033 ",
							"sourceMap": "707:3748:2:-:0;;;;;;;;"
						},
						"gasEstimates": {
							"creation": {
								"codeDepositCost": "17200",
								"executionCost": "97",
								"totalCost": "17297"
							},
							"internal": {
								"_callOptionalReturn(contract IERC20,bytes memory)": "infinite",
								"safeApprove(contract IERC20,address,uint256)": "infinite",
								"safeDecreaseAllowance(contract IERC20,address,uint256)": "infinite",
								"safeIncreaseAllowance(contract IERC20,address,uint256)": "infinite",
								"safePermit(contract IERC20Permit,address,address,uint256,uint256,uint8,bytes32,bytes32)": "infinite",
								"safeTransfer(contract IERC20,address,uint256)": "infinite",
								"safeTransferFrom(contract IERC20,address,address,uint256)": "infinite"
							}
						},
						"legacyAssembly": {
							".code": [
								{
									"begin": 707,
									"end": 4455,
									"name": "PUSH #[$]",
									"source": 2,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "PUSH [$]",
									"source": 2,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "PUSH",
									"source": 2,
									"value": "B"
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "DUP3",
									"source": 2
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "DUP3",
									"source": 2
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "DUP3",
									"source": 2
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "CODECOPY",
									"source": 2
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "DUP1",
									"source": 2
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "MLOAD",
									"source": 2
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "PUSH",
									"source": 2,
									"value": "0"
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "BYTE",
									"source": 2
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "PUSH",
									"source": 2,
									"value": "73"
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "EQ",
									"source": 2
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "PUSH [tag]",
									"source": 2,
									"value": "1"
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "JUMPI",
									"source": 2
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "PUSH",
									"source": 2,
									"value": "4E487B7100000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "PUSH",
									"source": 2,
									"value": "0"
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "MSTORE",
									"source": 2
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "PUSH",
									"source": 2,
									"value": "0"
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "PUSH",
									"source": 2,
									"value": "4"
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "MSTORE",
									"source": 2
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "PUSH",
									"source": 2,
									"value": "24"
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "PUSH",
									"source": 2,
									"value": "0"
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "REVERT",
									"source": 2
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "tag",
									"source": 2,
									"value": "1"
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "JUMPDEST",
									"source": 2
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "ADDRESS",
									"source": 2
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "PUSH",
									"source": 2,
									"value": "0"
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "MSTORE",
									"source": 2
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "PUSH",
									"source": 2,
									"value": "73"
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "DUP2",
									"source": 2
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "MSTORE8",
									"source": 2
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "DUP3",
									"source": 2
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "DUP2",
									"source": 2
								},
								{
									"begin": 707,
									"end": 4455,
									"name": "RETURN",
									"source": 2
								}
							],
							".data": {
								"0": {
									".auxdata": "a2646970667358221220be9d25fc546cf92b455c93e1dc51b6d81d550e7678c2366b7be901958201f50a64736f6c63430008040033",
									".code": [
										{
											"begin": 707,
											"end": 4455,
											"name": "PUSHDEPLOYADDRESS",
											"source": 2
										},
										{
											"begin": 707,
											"end": 4455,
											"name": "ADDRESS",
											"source": 2
										},
										{
											"begin": 707,
											"end": 4455,
											"name": "EQ",
											"source": 2
										},
										{
											"begin": 707,
											"end": 4455,
											"name": "PUSH",
											"source": 2,
											"value": "80"
										},
										{
											"begin": 707,
											"end": 4455,
											"name": "PUSH",
											"source": 2,
											"value": "40"
										},
										{
											"begin": 707,
											"end": 4455,
											"name": "MSTORE",
											"source": 2
										},
										{
											"begin": 707,
											"end": 4455,
											"name": "PUSH",
											"source": 2,
											"value": "0"
										},
										{
											"begin": 707,
											"end": 4455,
											"name": "DUP1",
											"source": 2
										},
										{
											"begin": 707,
											"end": 4455,
											"name": "REVERT",
											"source": 2
										}
									]
								}
							}
						},
						"methodIdentifiers": {}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"@openzeppelin/contracts/utils/Address.sol": {
				"Address": {
					"abi": [],
					"devdoc": {
						"details": "Collection of functions related to the address type",
						"kind": "dev",
						"methods": {},
						"version": 1
					},
					"evm": {
						"assembly": "    /* \"@openzeppelin/contracts/utils/Address.sol\":194:8305  library Address {... */\n  dataSize(sub_0)\n  dataOffset(sub_0)\n  0x0b\n  dup3\n  dup3\n  dup3\n  codecopy\n  dup1\n  mload\n  0x00\n  byte\n  0x73\n  eq\n  tag_1\n  jumpi\n  mstore(0x00, 0x4e487b7100000000000000000000000000000000000000000000000000000000)\n  mstore(0x04, 0x00)\n  revert(0x00, 0x24)\ntag_1:\n  mstore(0x00, address)\n  0x73\n  dup2\n  mstore8\n  dup3\n  dup2\n  return\nstop\n\nsub_0: assembly {\n        /* \"@openzeppelin/contracts/utils/Address.sol\":194:8305  library Address {... */\n      eq(address, deployTimeAddress())\n      mstore(0x40, 0x80)\n      0x00\n      dup1\n      revert\n\n    auxdata: 0xa2646970667358221220e62cf4bb7cf71215b53b11d510f64876a1ea7ec261245aab4a585747bd31014864736f6c63430008040033\n}\n",
						"bytecode": {
							"generatedSources": [],
							"linkReferences": {},
							"object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e62cf4bb7cf71215b53b11d510f64876a1ea7ec261245aab4a585747bd31014864736f6c63430008040033",
							"opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 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 0xE6 0x2C DELEGATECALL 0xBB PUSH29 0xF71215B53B11D510F64876A1EA7EC261245AAB4A585747BD3101486473 PUSH16 0x6C634300080400330000000000000000 ",
							"sourceMap": "194:8111:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
						},
						"deployedBytecode": {
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e62cf4bb7cf71215b53b11d510f64876a1ea7ec261245aab4a585747bd31014864736f6c63430008040033",
							"opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE6 0x2C DELEGATECALL 0xBB PUSH29 0xF71215B53B11D510F64876A1EA7EC261245AAB4A585747BD3101486473 PUSH16 0x6C634300080400330000000000000000 ",
							"sourceMap": "194:8111:3:-:0;;;;;;;;"
						},
						"gasEstimates": {
							"creation": {
								"codeDepositCost": "17200",
								"executionCost": "97",
								"totalCost": "17297"
							},
							"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"
							}
						},
						"legacyAssembly": {
							".code": [
								{
									"begin": 194,
									"end": 8305,
									"name": "PUSH #[$]",
									"source": 3,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "PUSH [$]",
									"source": 3,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "PUSH",
									"source": 3,
									"value": "B"
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "DUP3",
									"source": 3
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "DUP3",
									"source": 3
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "DUP3",
									"source": 3
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "CODECOPY",
									"source": 3
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "DUP1",
									"source": 3
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "MLOAD",
									"source": 3
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "PUSH",
									"source": 3,
									"value": "0"
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "BYTE",
									"source": 3
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "PUSH",
									"source": 3,
									"value": "73"
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "EQ",
									"source": 3
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "PUSH [tag]",
									"source": 3,
									"value": "1"
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "JUMPI",
									"source": 3
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "PUSH",
									"source": 3,
									"value": "4E487B7100000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "PUSH",
									"source": 3,
									"value": "0"
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "MSTORE",
									"source": 3
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "PUSH",
									"source": 3,
									"value": "0"
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "PUSH",
									"source": 3,
									"value": "4"
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "MSTORE",
									"source": 3
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "PUSH",
									"source": 3,
									"value": "24"
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "PUSH",
									"source": 3,
									"value": "0"
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "REVERT",
									"source": 3
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "tag",
									"source": 3,
									"value": "1"
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "JUMPDEST",
									"source": 3
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "ADDRESS",
									"source": 3
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "PUSH",
									"source": 3,
									"value": "0"
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "MSTORE",
									"source": 3
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "PUSH",
									"source": 3,
									"value": "73"
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "DUP2",
									"source": 3
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "MSTORE8",
									"source": 3
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "DUP3",
									"source": 3
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "DUP2",
									"source": 3
								},
								{
									"begin": 194,
									"end": 8305,
									"name": "RETURN",
									"source": 3
								}
							],
							".data": {
								"0": {
									".auxdata": "a2646970667358221220e62cf4bb7cf71215b53b11d510f64876a1ea7ec261245aab4a585747bd31014864736f6c63430008040033",
									".code": [
										{
											"begin": 194,
											"end": 8305,
											"name": "PUSHDEPLOYADDRESS",
											"source": 3
										},
										{
											"begin": 194,
											"end": 8305,
											"name": "ADDRESS",
											"source": 3
										},
										{
											"begin": 194,
											"end": 8305,
											"name": "EQ",
											"source": 3
										},
										{
											"begin": 194,
											"end": 8305,
											"name": "PUSH",
											"source": 3,
											"value": "80"
										},
										{
											"begin": 194,
											"end": 8305,
											"name": "PUSH",
											"source": 3,
											"value": "40"
										},
										{
											"begin": 194,
											"end": 8305,
											"name": "MSTORE",
											"source": 3
										},
										{
											"begin": 194,
											"end": 8305,
											"name": "PUSH",
											"source": 3,
											"value": "0"
										},
										{
											"begin": 194,
											"end": 8305,
											"name": "DUP1",
											"source": 3
										},
										{
											"begin": 194,
											"end": 8305,
											"name": "REVERT",
											"source": 3
										}
									]
								}
							}
						},
						"methodIdentifiers": {}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"bridges/facets/StargateFacet.sol": {
				"StargateFacet": {
					"abi": [
						{
							"inputs": [],
							"name": "InvalidAmount",
							"type": "error"
						},
						{
							"inputs": [],
							"name": "InvalidConfig",
							"type": "error"
						},
						{
							"inputs": [],
							"name": "InvalidDestinationPoolId",
							"type": "error"
						},
						{
							"inputs": [],
							"name": "InvalidSourcePoolId",
							"type": "error"
						},
						{
							"inputs": [],
							"name": "NoMsgValueForCrossChainMessage",
							"type": "error"
						},
						{
							"inputs": [],
							"name": "ReentrancyError",
							"type": "error"
						},
						{
							"inputs": [],
							"name": "SenderNotStargateRouter",
							"type": "error"
						},
						{
							"inputs": [],
							"name": "StargateRouterAddressZero",
							"type": "error"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": false,
									"internalType": "uint16",
									"name": "chainId",
									"type": "uint16"
								},
								{
									"indexed": false,
									"internalType": "address",
									"name": "token",
									"type": "address"
								},
								{
									"indexed": false,
									"internalType": "uint256",
									"name": "poolId",
									"type": "uint256"
								}
							],
							"name": "SGAddedPool",
							"type": "event"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": false,
									"internalType": "address",
									"name": "stargate",
									"type": "address"
								},
								{
									"indexed": false,
									"internalType": "uint16",
									"name": "chainId",
									"type": "uint16"
								}
							],
							"name": "SGInitialized",
							"type": "event"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": false,
									"internalType": "address",
									"name": "token",
									"type": "address"
								},
								{
									"indexed": false,
									"internalType": "uint256",
									"name": "amount",
									"type": "uint256"
								}
							],
							"name": "SGReceivedOnDestination",
							"type": "event"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": false,
									"internalType": "string",
									"name": "bridgeUsed",
									"type": "string"
								},
								{
									"indexed": false,
									"internalType": "address",
									"name": "fromToken",
									"type": "address"
								},
								{
									"indexed": false,
									"internalType": "address",
									"name": "toToken",
									"type": "address"
								},
								{
									"indexed": false,
									"internalType": "address",
									"name": "from",
									"type": "address"
								},
								{
									"indexed": false,
									"internalType": "address",
									"name": "to",
									"type": "address"
								},
								{
									"indexed": false,
									"internalType": "uint256",
									"name": "amount",
									"type": "uint256"
								},
								{
									"indexed": false,
									"internalType": "uint16",
									"name": "chainIdTo",
									"type": "uint16"
								}
							],
							"name": "SGTransferStarted",
							"type": "event"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": false,
									"internalType": "address",
									"name": "newAddress",
									"type": "address"
								}
							],
							"name": "SGUpdatedRouter",
							"type": "event"
						},
						{
							"anonymous": false,
							"inputs": [
								{
									"indexed": false,
									"internalType": "uint256",
									"name": "newSlippage",
									"type": "uint256"
								}
							],
							"name": "SGUpdatedSlippageTolerance",
							"type": "event"
						},
						{
							"inputs": [
								{
									"internalType": "uint16",
									"name": "_chainId",
									"type": "uint16"
								},
								{
									"internalType": "address",
									"name": "_token",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "_poolId",
									"type": "uint256"
								}
							],
							"name": "sgAddPool",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "qty",
											"type": "uint256"
										},
										{
											"internalType": "address",
											"name": "fromToken",
											"type": "address"
										},
										{
											"internalType": "address",
											"name": "toToken",
											"type": "address"
										},
										{
											"internalType": "uint16",
											"name": "dstChainId",
											"type": "uint16"
										},
										{
											"internalType": "uint16",
											"name": "srcPoolId",
											"type": "uint16"
										},
										{
											"internalType": "uint16",
											"name": "dstPoolId",
											"type": "uint16"
										},
										{
											"internalType": "address payable",
											"name": "to",
											"type": "address"
										},
										{
											"internalType": "address",
											"name": "destStargateComposed",
											"type": "address"
										}
									],
									"internalType": "struct StargateFacet.StargateData",
									"name": "_sgData",
									"type": "tuple"
								}
							],
							"name": "sgBridgeTokens",
							"outputs": [
								{
									"internalType": "bool",
									"name": "",
									"type": "bool"
								}
							],
							"stateMutability": "payable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint16",
									"name": "_destChain",
									"type": "uint16"
								},
								{
									"internalType": "address",
									"name": "_receiver",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "_router",
									"type": "address"
								}
							],
							"name": "sgCalculateFees",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint16",
									"name": "_chainId",
									"type": "uint16"
								},
								{
									"internalType": "address",
									"name": "_token",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "_poolId",
									"type": "uint256"
								}
							],
							"name": "sgCheckPoolId",
							"outputs": [
								{
									"internalType": "bool",
									"name": "",
									"type": "bool"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "_stargateRouter",
									"type": "address"
								},
								{
									"internalType": "uint16",
									"name": "_chainId",
									"type": "uint16"
								}
							],
							"name": "sgInitialize",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "_amount",
									"type": "uint256"
								}
							],
							"name": "sgMinAmountOut",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint16",
									"name": "_chainId",
									"type": "uint16"
								},
								{
									"internalType": "bytes",
									"name": "_srcAddress",
									"type": "bytes"
								},
								{
									"internalType": "uint256",
									"name": "_nonce",
									"type": "uint256"
								},
								{
									"internalType": "address",
									"name": "_token",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "amountLD",
									"type": "uint256"
								},
								{
									"internalType": "bytes",
									"name": "_payload",
									"type": "bytes"
								}
							],
							"name": "sgReceive",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "_newAddress",
									"type": "address"
								}
							],
							"name": "sgUpdateRouter",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "_newSlippage",
									"type": "uint256"
								}
							],
							"name": "sgUpdateSlippageTolerance",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "_token",
									"type": "address"
								},
								{
									"internalType": "address",
									"name": "_user",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "_amount",
									"type": "uint256"
								}
							],
							"name": "sgWithdraw",
							"outputs": [],
							"stateMutability": "payable",
							"type": "function"
						},
						{
							"stateMutability": "payable",
							"type": "receive"
						}
					],
					"devdoc": {
						"author": "Luke Wickens <luke@pillarproject.io>",
						"kind": "dev",
						"methods": {
							"sgBridgeTokens((uint256,address,address,uint16,uint16,uint16,address,address))": {
								"params": {
									"_sgData": "- struct containing information required to execute bridge"
								}
							},
							"sgInitialize(address,uint16)": {
								"params": {
									"_chainId": "- current chain id",
									"_stargateRouter": "- address of the Stargate router contract"
								}
							},
							"sgReceive(uint16,bytes,uint256,address,uint256,bytes)": {
								"params": {
									"_chainId": "The remote chainId sending the tokens",
									"_nonce": "The message ordering nonce",
									"_payload": "The bytes containing the toAddress",
									"_srcAddress": "The remote Bridge address",
									"_token": "The token contract on the local chain",
									"amountLD": "The qty of local _token contract tokens"
								}
							}
						},
						"title": "StargateFacet",
						"version": 1
					},
					"evm": {
						"assembly": "    /* \"bridges/facets/StargateFacet.sol\":910:10259  contract StargateFacet is IStargateReceiver, ReentrancyGuard {... */\n  mstore(0x40, 0x80)\n  callvalue\n  dup1\n  iszero\n  tag_1\n  jumpi\n  0x00\n  dup1\n  revert\ntag_1:\n  pop\n  dataSize(sub_0)\n  dup1\n  dataOffset(sub_0)\n  0x00\n  codecopy\n  0x00\n  return\nstop\n\nsub_0: assembly {\n        /* \"bridges/facets/StargateFacet.sol\":910:10259  contract StargateFacet is IStargateReceiver, ReentrancyGuard {... */\n      mstore(0x40, 0x80)\n      jumpi(tag_1, lt(calldatasize, 0x04))\n      shr(0xe0, calldataload(0x00))\n      dup1\n      0x618c3f29\n      gt\n      tag_13\n      jumpi\n      dup1\n      0x618c3f29\n      eq\n      tag_8\n      jumpi\n      dup1\n      0x6acf5e3f\n      eq\n      tag_9\n      jumpi\n      dup1\n      0x90f12364\n      eq\n      tag_10\n      jumpi\n      dup1\n      0xab8236f3\n      eq\n      tag_11\n      jumpi\n      dup1\n      0xc722a336\n      eq\n      tag_12\n      jumpi\n      jump(tag_2)\n    tag_13:\n      dup1\n      0x217aabb7\n      eq\n      tag_3\n      jumpi\n      dup1\n      0x2aad46e3\n      eq\n      tag_4\n      jumpi\n      dup1\n      0x42d910c6\n      eq\n      tag_5\n      jumpi\n      dup1\n      0x498ee469\n      eq\n      tag_6\n      jumpi\n      dup1\n      0x4be85c35\n      eq\n      tag_7\n      jumpi\n      jump(tag_2)\n    tag_1:\n      jumpi(tag_2, calldatasize)\n      stop\n    tag_2:\n      0x00\n      dup1\n      revert\n        /* \"bridges/facets/StargateFacet.sol\":8626:8876  function sgUpdateSlippageTolerance(uint256 _newSlippage) external {... */\n    tag_3:\n      callvalue\n      dup1\n      iszero\n      tag_16\n      jumpi\n      0x00\n      dup1\n      revert\n    tag_16:\n      pop\n      tag_17\n      0x04\n      dup1\n      calldatasize\n      sub\n      dup2\n      add\n      swap1\n      tag_18\n      swap2\n      swap1\n      tag_19\n      jump\t// in\n    tag_18:\n      tag_20\n      jump\t// in\n    tag_17:\n      stop\n        /* \"bridges/facets/StargateFacet.sol\":9200:9500  function sgAddPool(... */\n    tag_4:\n      callvalue\n      dup1\n      iszero\n      tag_21\n      jumpi\n      0x00\n      dup1\n      revert\n    tag_21:\n      pop\n      tag_22\n      0x04\n      dup1\n      calldatasize\n      sub\n      dup2\n      add\n      swap1\n      tag_23\n      swap2\n      swap1\n      tag_24\n      jump\t// in\n    tag_23:\n      tag_25\n      jump\t// in\n    tag_22:\n      stop\n        /* \"bridges/facets/StargateFacet.sol\":7567:8078  function sgCalculateFees(... */\n    tag_5:\n      callvalue\n      dup1\n      iszero\n      tag_26\n      jumpi\n      0x00\n      dup1\n      revert\n    tag_26:\n      pop\n      tag_27\n      0x04\n      dup1\n      calldatasize\n      sub\n      dup2\n      add\n      swap1\n      tag_28\n      swap2\n      swap1\n      tag_29\n      jump\t// in\n    tag_28:\n      tag_30\n      jump\t// in\n    tag_27:\n      mload(0x40)\n      tag_31\n      swap2\n      swap1\n      tag_32\n      jump\t// in\n    tag_31:\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      return\n        /* \"bridges/facets/StargateFacet.sol\":2848:4096  function sgInitialize(address _stargateRouter, uint16 _chainId) external {... */\n    tag_6:\n      callvalue\n      dup1\n      iszero\n      tag_33\n      jumpi\n      0x00\n      dup1\n      revert\n    tag_33:\n      pop\n      tag_34\n      0x04\n      dup1\n      calldatasize\n      sub\n      dup2\n      add\n      swap1\n      tag_35\n      swap2\n      swap1\n      tag_36\n      jump\t// in\n    tag_35:\n      tag_37\n      jump\t// in\n    tag_34:\n      stop\n        /* \"bridges/facets/StargateFacet.sol\":8305:8620  function sgUpdateRouter(address _newAddress) external {... */\n    tag_7:\n      callvalue\n      dup1\n      iszero\n      tag_38\n      jumpi\n      0x00\n      dup1\n      revert\n    tag_38:\n      pop\n      tag_39\n      0x04\n      dup1\n      calldatasize\n      sub\n      dup2\n      add\n      swap1\n      tag_40\n      swap2\n      swap1\n      tag_41\n      jump\t// in\n    tag_40:\n      tag_42\n      jump\t// in\n    tag_39:\n      stop\n        /* \"bridges/facets/StargateFacet.sol\":8084:8299  function sgMinAmountOut(uint256 _amount) public view returns (uint256) {... */\n    tag_8:\n      callvalue\n      dup1\n      iszero\n      tag_43\n      jumpi\n      0x00\n      dup1\n      revert\n    tag_43:\n      pop\n      tag_44\n      0x04\n      dup1\n      calldatasize\n      sub\n      dup2\n      add\n      swap1\n      tag_45\n      swap2\n      swap1\n      tag_19\n      jump\t// in\n    tag_45:\n      tag_46\n      jump\t// in\n    tag_44:\n      mload(0x40)\n      tag_47\n      swap2\n      swap1\n      tag_32\n      jump\t// in\n    tag_47:\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      return\n        /* \"bridges/facets/StargateFacet.sol\":4184:6685  function sgBridgeTokens(StargateData memory _sgData)... */\n    tag_9:\n      tag_48\n      0x04\n      dup1\n      calldatasize\n      sub\n      dup2\n      add\n      swap1\n      tag_49\n      swap2\n      swap1\n      tag_50\n      jump\t// in\n    tag_49:\n      tag_51\n      jump\t// in\n    tag_48:\n      mload(0x40)\n      tag_52\n      swap2\n      swap1\n      tag_53\n      jump\t// in\n    tag_52:\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      return\n        /* \"bridges/facets/StargateFacet.sol\":9506:9755  function sgCheckPoolId(... */\n    tag_10:\n      callvalue\n      dup1\n      iszero\n      tag_54\n      jumpi\n      0x00\n      dup1\n      revert\n    tag_54:\n      pop\n      tag_55\n      0x04\n      dup1\n      calldatasize\n      sub\n      dup2\n      add\n      swap1\n      tag_56\n      swap2\n      swap1\n      tag_24\n      jump\t// in\n    tag_56:\n      tag_57\n      jump\t// in\n    tag_55:\n      mload(0x40)\n      tag_58\n      swap2\n      swap1\n      tag_53\n      jump\t// in\n    tag_58:\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      return\n        /* \"bridges/facets/StargateFacet.sol\":7038:7561  function sgReceive(... */\n    tag_11:\n      callvalue\n      dup1\n      iszero\n      tag_59\n      jumpi\n      0x00\n      dup1\n      revert\n    tag_59:\n      pop\n      tag_60\n      0x04\n      dup1\n      calldatasize\n      sub\n      dup2\n      add\n      swap1\n      tag_61\n      swap2\n      swap1\n      tag_62\n      jump\t// in\n    tag_61:\n      tag_63\n      jump\t// in\n    tag_60:\n      stop\n        /* \"bridges/facets/StargateFacet.sol\":8882:9194  function sgWithdraw(... */\n    tag_12:\n      tag_64\n      0x04\n      dup1\n      calldatasize\n      sub\n      dup2\n      add\n      swap1\n      tag_65\n      swap2\n      swap1\n      tag_66\n      jump\t// in\n    tag_65:\n      tag_67\n      jump\t// in\n    tag_64:\n      stop\n        /* \"bridges/facets/StargateFacet.sol\":8626:8876  function sgUpdateSlippageTolerance(uint256 _newSlippage) external {... */\n    tag_20:\n        /* \"bridges/facets/StargateFacet.sol\":8702:8737  LibDiamond.enforceIsContractOwner() */\n      tag_69\n        /* \"bridges/facets/StargateFacet.sol\":8702:8735  LibDiamond.enforceIsContractOwner */\n      tag_70\n        /* \"bridges/facets/StargateFacet.sol\":8702:8737  LibDiamond.enforceIsContractOwner() */\n      jump\t// in\n    tag_69:\n        /* \"bridges/facets/StargateFacet.sol\":8747:8764  Storage storage s */\n      0x00\n        /* \"bridges/facets/StargateFacet.sol\":8767:8779  getStorage() */\n      tag_71\n        /* \"bridges/facets/StargateFacet.sol\":8767:8777  getStorage */\n      tag_72\n        /* \"bridges/facets/StargateFacet.sol\":8767:8779  getStorage() */\n      jump\t// in\n    tag_71:\n        /* \"bridges/facets/StargateFacet.sol\":8747:8779  Storage storage s = getStorage() */\n      swap1\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":8802:8814  _newSlippage */\n      dup2\n        /* \"bridges/facets/StargateFacet.sol\":8789:8790  s */\n      dup2\n        /* \"bridges/facets/StargateFacet.sol\":8789:8799  s.slippage */\n      0x02\n      add\n        /* \"bridges/facets/StargateFacet.sol\":8789:8814  s.slippage = _newSlippage */\n      dup2\n      swap1\n      sstore\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":8829:8869  SGUpdatedSlippageTolerance(_newSlippage) */\n      0x45934903f6b10aff9d3435b8362d284d95d14ca68e8554f05f04c7856a6003c0\n        /* \"bridges/facets/StargateFacet.sol\":8856:8868  _newSlippage */\n      dup3\n        /* \"bridges/facets/StargateFacet.sol\":8829:8869  SGUpdatedSlippageTolerance(_newSlippage) */\n      mload(0x40)\n      tag_73\n      swap2\n      swap1\n      tag_32\n      jump\t// in\n    tag_73:\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      log1\n        /* \"bridges/facets/StargateFacet.sol\":8626:8876  function sgUpdateSlippageTolerance(uint256 _newSlippage) external {... */\n      pop\n      pop\n      jump\t// out\n        /* \"bridges/facets/StargateFacet.sol\":9200:9500  function sgAddPool(... */\n    tag_25:\n        /* \"bridges/facets/StargateFacet.sol\":9316:9351  LibDiamond.enforceIsContractOwner() */\n      tag_75\n        /* \"bridges/facets/StargateFacet.sol\":9316:9349  LibDiamond.enforceIsContractOwner */\n      tag_70\n        /* \"bridges/facets/StargateFacet.sol\":9316:9351  LibDiamond.enforceIsContractOwner() */\n      jump\t// in\n    tag_75:\n        /* \"bridges/facets/StargateFacet.sol\":9361:9378  Storage storage s */\n      0x00\n        /* \"bridges/facets/StargateFacet.sol\":9381:9393  getStorage() */\n      tag_76\n        /* \"bridges/facets/StargateFacet.sol\":9381:9391  getStorage */\n      tag_72\n        /* \"bridges/facets/StargateFacet.sol\":9381:9393  getStorage() */\n      jump\t// in\n    tag_76:\n        /* \"bridges/facets/StargateFacet.sol\":9361:9393  Storage storage s = getStorage() */\n      swap1\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":9433:9440  _poolId */\n      dup2\n        /* \"bridges/facets/StargateFacet.sol\":9403:9404  s */\n      dup2\n        /* \"bridges/facets/StargateFacet.sol\":9403:9412  s.poolIds */\n      0x03\n      add\n        /* \"bridges/facets/StargateFacet.sol\":9403:9422  s.poolIds[_chainId] */\n      0x00\n        /* \"bridges/facets/StargateFacet.sol\":9413:9421  _chainId */\n      dup7\n        /* \"bridges/facets/StargateFacet.sol\":9403:9422  s.poolIds[_chainId] */\n      0xffff\n      and\n      0xffff\n      and\n      dup2\n      mstore\n      0x20\n      add\n      swap1\n      dup2\n      mstore\n      0x20\n      add\n      0x00\n      keccak256\n        /* \"bridges/facets/StargateFacet.sol\":9403:9430  s.poolIds[_chainId][_token] */\n      0x00\n        /* \"bridges/facets/StargateFacet.sol\":9423:9429  _token */\n      dup6\n        /* \"bridges/facets/StargateFacet.sol\":9403:9430  s.poolIds[_chainId][_token] */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n      dup2\n      mstore\n      0x20\n      add\n      swap1\n      dup2\n      mstore\n      0x20\n      add\n      0x00\n      keccak256\n        /* \"bridges/facets/StargateFacet.sol\":9403:9440  s.poolIds[_chainId][_token] = _poolId */\n      dup2\n      swap1\n      sstore\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":9455:9493  SGAddedPool(_chainId, _token, _poolId) */\n      0x5a600144b7b71ca7ee988e17e7745e8d46eb24056d4818716be29fa976393a8e\n        /* \"bridges/facets/StargateFacet.sol\":9467:9475  _chainId */\n      dup5\n        /* \"bridges/facets/StargateFacet.sol\":9477:9483  _token */\n      dup5\n        /* \"bridges/facets/StargateFacet.sol\":9485:9492  _poolId */\n      dup5\n        /* \"bridges/facets/StargateFacet.sol\":9455:9493  SGAddedPool(_chainId, _token, _poolId) */\n      mload(0x40)\n      tag_77\n      swap4\n      swap3\n      swap2\n      swap1\n      tag_78\n      jump\t// in\n    tag_77:\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      log1\n        /* \"bridges/facets/StargateFacet.sol\":9200:9500  function sgAddPool(... */\n      pop\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"bridges/facets/StargateFacet.sol\":7567:8078  function sgCalculateFees(... */\n    tag_30:\n        /* \"bridges/facets/StargateFacet.sol\":7698:7705  uint256 */\n      0x00\n        /* \"bridges/facets/StargateFacet.sol\":7718:7735  uint256 nativeFee */\n      dup1\n        /* \"bridges/facets/StargateFacet.sol\":7757:7764  _router */\n      dup3\n        /* \"bridges/facets/StargateFacet.sol\":7741:7783  IStargateRouter(_router).quoteLayerZeroFee */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n      0x0a512369\n        /* \"bridges/facets/StargateFacet.sol\":7797:7807  _destChain */\n      dup7\n        /* \"bridges/facets/StargateFacet.sol\":7845:7846  1 */\n      0x01\n        /* \"bridges/facets/StargateFacet.sol\":7889:7898  _receiver */\n      dup8\n        /* \"bridges/facets/StargateFacet.sol\":7872:7899  abi.encodePacked(_receiver) */\n      add(0x20, mload(0x40))\n      tag_80\n      swap2\n      swap1\n      tag_81\n      jump\t// in\n    tag_80:\n      mload(0x40)\n      0x20\n      dup2\n      dup4\n      sub\n      sub\n      dup2\n      mstore\n      swap1\n      0x40\n      mstore\n        /* \"bridges/facets/StargateFacet.sol\":7995:8035  IStargateRouter.lzTxObj(200000, 0, \"0x\") */\n      mload(0x40)\n      dup1\n      0x60\n      add\n      0x40\n      mstore\n      dup1\n        /* \"bridges/facets/StargateFacet.sol\":8019:8025  200000 */\n      0x030d40\n        /* \"bridges/facets/StargateFacet.sol\":7995:8035  IStargateRouter.lzTxObj(200000, 0, \"0x\") */\n      dup2\n      mstore\n      0x20\n      add\n        /* \"bridges/facets/StargateFacet.sol\":8027:8028  0 */\n      0x00\n        /* \"bridges/facets/StargateFacet.sol\":7995:8035  IStargateRouter.lzTxObj(200000, 0, \"0x\") */\n      dup2\n      mstore\n      0x20\n      add\n      mload(0x40)\n      dup1\n      0x40\n      add\n      0x40\n      mstore\n      dup1\n      0x02\n      dup2\n      mstore\n      0x20\n      add\n      0x3078000000000000000000000000000000000000000000000000000000000000\n      dup2\n      mstore\n      pop\n      dup2\n      mstore\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":7741:8045  IStargateRouter(_router).quoteLayerZeroFee(... */\n      mload(0x40)\n      dup6\n      0xffffffff\n      and\n      0xe0\n      shl\n      dup2\n      mstore\n      0x04\n      add\n      tag_82\n      swap5\n      swap4\n      swap3\n      swap2\n      swap1\n      tag_83\n      jump\t// in\n    tag_82:\n      0x40\n      dup1\n      mload\n      dup1\n      dup4\n      sub\n      dup2\n      dup7\n      dup1\n      extcodesize\n      iszero\n      dup1\n      iszero\n      tag_84\n      jumpi\n      0x00\n      dup1\n      revert\n    tag_84:\n      pop\n      gas\n      staticcall\n      iszero\n      dup1\n      iszero\n      tag_86\n      jumpi\n      returndatasize\n      0x00\n      dup1\n      returndatacopy\n      revert(0x00, returndatasize)\n    tag_86:\n      pop\n      pop\n      pop\n      pop\n      mload(0x40)\n      returndatasize\n      not(0x1f)\n      0x1f\n      dup3\n      add\n      and\n      dup3\n      add\n      dup1\n      0x40\n      mstore\n      pop\n      dup2\n      add\n      swap1\n      tag_87\n      swap2\n      swap1\n      tag_88\n      jump\t// in\n    tag_87:\n        /* \"bridges/facets/StargateFacet.sol\":7717:8045  (uint256 nativeFee, ) = IStargateRouter(_router).quoteLayerZeroFee(... */\n      pop\n      swap1\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":8062:8071  nativeFee */\n      dup1\n        /* \"bridges/facets/StargateFacet.sol\":8055:8071  return nativeFee */\n      swap2\n      pop\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":7567:8078  function sgCalculateFees(... */\n      swap4\n      swap3\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"bridges/facets/StargateFacet.sol\":2848:4096  function sgInitialize(address _stargateRouter, uint16 _chainId) external {... */\n    tag_37:\n        /* \"bridges/facets/StargateFacet.sol\":2962:2963  0 */\n      0x00\n        /* \"bridges/facets/StargateFacet.sol\":2935:2964  _stargateRouter == address(0) */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n        /* \"bridges/facets/StargateFacet.sol\":2935:2950  _stargateRouter */\n      dup3\n        /* \"bridges/facets/StargateFacet.sol\":2935:2964  _stargateRouter == address(0) */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n      eq\n        /* \"bridges/facets/StargateFacet.sol\":2931:2988  if (_stargateRouter == address(0)) revert InvalidConfig() */\n      iszero\n      tag_90\n      jumpi\n        /* \"bridges/facets/StargateFacet.sol\":2973:2988  InvalidConfig() */\n      mload(0x40)\n      0x35be3ac800000000000000000000000000000000000000000000000000000000\n      dup2\n      mstore\n      0x04\n      add\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      revert\n        /* \"bridges/facets/StargateFacet.sol\":2931:2988  if (_stargateRouter == address(0)) revert InvalidConfig() */\n    tag_90:\n        /* \"bridges/facets/StargateFacet.sol\":2998:3033  LibDiamond.enforceIsContractOwner() */\n      tag_91\n        /* \"bridges/facets/StargateFacet.sol\":2998:3031  LibDiamond.enforceIsContractOwner */\n      tag_70\n        /* \"bridges/facets/StargateFacet.sol\":2998:3033  LibDiamond.enforceIsContractOwner() */\n      jump\t// in\n    tag_91:\n        /* \"bridges/facets/StargateFacet.sol\":3043:3060  Storage storage s */\n      0x00\n        /* \"bridges/facets/StargateFacet.sol\":3063:3075  getStorage() */\n      tag_92\n        /* \"bridges/facets/StargateFacet.sol\":3063:3073  getStorage */\n      tag_72\n        /* \"bridges/facets/StargateFacet.sol\":3063:3075  getStorage() */\n      jump\t// in\n    tag_92:\n        /* \"bridges/facets/StargateFacet.sol\":3043:3075  Storage storage s = getStorage() */\n      swap1\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":3112:3127  _stargateRouter */\n      dup3\n        /* \"bridges/facets/StargateFacet.sol\":3085:3086  s */\n      dup2\n        /* \"bridges/facets/StargateFacet.sol\":3085:3101  s.stargateRouter */\n      0x00\n      add\n      0x00\n        /* \"bridges/facets/StargateFacet.sol\":3085:3128  s.stargateRouter = address(_stargateRouter) */\n      0x0100\n      exp\n      dup2\n      sload\n      dup2\n      0xffffffffffffffffffffffffffffffffffffffff\n      mul\n      not\n      and\n      swap1\n      dup4\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n      mul\n      or\n      swap1\n      sstore\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":3150:3158  _chainId */\n      dup2\n        /* \"bridges/facets/StargateFacet.sol\":3138:3139  s */\n      dup2\n        /* \"bridges/facets/StargateFacet.sol\":3138:3147  s.chainId */\n      0x00\n      add\n      0x14\n        /* \"bridges/facets/StargateFacet.sol\":3138:3158  s.chainId = _chainId */\n      0x0100\n      exp\n      dup2\n      sload\n      dup2\n      0xffff\n      mul\n      not\n      and\n      swap1\n      dup4\n      0xffff\n      and\n      mul\n      or\n      swap1\n      sstore\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":3181:3183  50 */\n      0x32\n        /* \"bridges/facets/StargateFacet.sol\":3168:3169  s */\n      dup2\n        /* \"bridges/facets/StargateFacet.sol\":3168:3178  s.slippage */\n      0x02\n      add\n        /* \"bridges/facets/StargateFacet.sol\":3168:3183  s.slippage = 50 */\n      dup2\n      swap1\n      sstore\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":3212:3271  sgAddPool(1, 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, 1) */\n      tag_93\n        /* \"bridges/facets/StargateFacet.sol\":3222:3223  1 */\n      0x01\n        /* \"bridges/facets/StargateFacet.sol\":3225:3267  0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 */\n      0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48\n        /* \"bridges/facets/StargateFacet.sol\":3269:3270  1 */\n      0x01\n        /* \"bridges/facets/StargateFacet.sol\":3212:3221  sgAddPool */\n      tag_25\n        /* \"bridges/facets/StargateFacet.sol\":3212:3271  sgAddPool(1, 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, 1) */\n      jump\t// in\n    tag_93:\n        /* \"bridges/facets/StargateFacet.sol\":3281:3340  sgAddPool(1, 0xdAC17F958D2ee523a2206206994597C13D831ec7, 2) */\n      tag_94\n        /* \"bridges/facets/StargateFacet.sol\":3291:3292  1 */\n      0x01\n        /* \"bridges/facets/StargateFacet.sol\":3294:3336  0xdAC17F958D2ee523a2206206994597C13D831ec7 */\n      0xdac17f958d2ee523a2206206994597c13d831ec7\n        /* \"bridges/facets/StargateFacet.sol\":3338:3339  2 */\n      0x02\n        /* \"bridges/facets/StargateFacet.sol\":3281:3290  sgAddPool */\n      tag_25\n        /* \"bridges/facets/StargateFacet.sol\":3281:3340  sgAddPool(1, 0xdAC17F958D2ee523a2206206994597C13D831ec7, 2) */\n      jump\t// in\n    tag_94:\n        /* \"bridges/facets/StargateFacet.sol\":3350:3409  sgAddPool(2, 0x55d398326f99059fF775485246999027B3197955, 2) */\n      tag_95\n        /* \"bridges/facets/StargateFacet.sol\":3360:3361  2 */\n      0x02\n        /* \"bridges/facets/StargateFacet.sol\":3363:3405  0x55d398326f99059fF775485246999027B3197955 */\n      0x55d398326f99059ff775485246999027b3197955\n        /* \"bridges/facets/StargateFacet.sol\":3407:3408  2 */\n      0x02\n        /* \"bridges/facets/StargateFacet.sol\":3350:3359  sgAddPool */\n      tag_25\n        /* \"bridges/facets/StargateFacet.sol\":3350:3409  sgAddPool(2, 0x55d398326f99059fF775485246999027B3197955, 2) */\n      jump\t// in\n    tag_95:\n        /* \"bridges/facets/StargateFacet.sol\":3419:3478  sgAddPool(2, 0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56, 5) */\n      tag_96\n        /* \"bridges/facets/StargateFacet.sol\":3429:3430  2 */\n      0x02\n        /* \"bridges/facets/StargateFacet.sol\":3432:3474  0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56 */\n      0xe9e7cea3dedca5984780bafc599bd69add087d56\n        /* \"bridges/facets/StargateFacet.sol\":3476:3477  5 */\n      0x05\n        /* \"bridges/facets/StargateFacet.sol\":3419:3428  sgAddPool */\n      tag_25\n        /* \"bridges/facets/StargateFacet.sol\":3419:3478  sgAddPool(2, 0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56, 5) */\n      jump\t// in\n    tag_96:\n        /* \"bridges/facets/StargateFacet.sol\":3488:3547  sgAddPool(6, 0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E, 1) */\n      tag_97\n        /* \"bridges/facets/StargateFacet.sol\":3498:3499  6 */\n      0x06\n        /* \"bridges/facets/StargateFacet.sol\":3501:3543  0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E */\n      0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e\n        /* \"bridges/facets/StargateFacet.sol\":3545:3546  1 */\n      0x01\n        /* \"bridges/facets/StargateFacet.sol\":3488:3497  sgAddPool */\n      tag_25\n        /* \"bridges/facets/StargateFacet.sol\":3488:3547  sgAddPool(6, 0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E, 1) */\n      jump\t// in\n    tag_97:\n        /* \"bridges/facets/StargateFacet.sol\":3557:3616  sgAddPool(6, 0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7, 2) */\n      tag_98\n        /* \"bridges/facets/StargateFacet.sol\":3567:3568  6 */\n      0x06\n        /* \"bridges/facets/StargateFacet.sol\":3570:3612  0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7 */\n      0x9702230a8ea53601f5cd2dc00fdbc13d4df4a8c7\n        /* \"bridges/facets/StargateFacet.sol\":3614:3615  2 */\n      0x02\n        /* \"bridges/facets/StargateFacet.sol\":3557:3566  sgAddPool */\n      tag_25\n        /* \"bridges/facets/StargateFacet.sol\":3557:3616  sgAddPool(6, 0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7, 2) */\n      jump\t// in\n    tag_98:\n        /* \"bridges/facets/StargateFacet.sol\":3626:3685  sgAddPool(9, 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174, 1) */\n      tag_99\n        /* \"bridges/facets/StargateFacet.sol\":3636:3637  9 */\n      0x09\n        /* \"bridges/facets/StargateFacet.sol\":3639:3681  0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174 */\n      0x2791bca1f2de4661ed88a30c99a7a9449aa84174\n        /* \"bridges/facets/StargateFacet.sol\":3683:3684  1 */\n      0x01\n        /* \"bridges/facets/StargateFacet.sol\":3626:3635  sgAddPool */\n      tag_25\n        /* \"bridges/facets/StargateFacet.sol\":3626:3685  sgAddPool(9, 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174, 1) */\n      jump\t// in\n    tag_99:\n        /* \"bridges/facets/StargateFacet.sol\":3695:3754  sgAddPool(9, 0xc2132D05D31c914a87C6611C10748AEb04B58e8F, 2) */\n      tag_100\n        /* \"bridges/facets/StargateFacet.sol\":3705:3706  9 */\n      0x09\n        /* \"bridges/facets/StargateFacet.sol\":3708:3750  0xc2132D05D31c914a87C6611C10748AEb04B58e8F */\n      0xc2132d05d31c914a87c6611c10748aeb04b58e8f\n        /* \"bridges/facets/StargateFacet.sol\":3752:3753  2 */\n      0x02\n        /* \"bridges/facets/StargateFacet.sol\":3695:3704  sgAddPool */\n      tag_25\n        /* \"bridges/facets/StargateFacet.sol\":3695:3754  sgAddPool(9, 0xc2132D05D31c914a87C6611C10748AEb04B58e8F, 2) */\n      jump\t// in\n    tag_100:\n        /* \"bridges/facets/StargateFacet.sol\":3764:3824  sgAddPool(10, 0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8, 1) */\n      tag_101\n        /* \"bridges/facets/StargateFacet.sol\":3774:3776  10 */\n      0x0a\n        /* \"bridges/facets/StargateFacet.sol\":3778:3820  0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8 */\n      0xff970a61a04b1ca14834a43f5de4533ebddb5cc8\n        /* \"bridges/facets/StargateFacet.sol\":3822:3823  1 */\n      0x01\n        /* \"bridges/facets/StargateFacet.sol\":3764:3773  sgAddPool */\n      tag_25\n        /* \"bridges/facets/StargateFacet.sol\":3764:3824  sgAddPool(10, 0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8, 1) */\n      jump\t// in\n    tag_101:\n        /* \"bridges/facets/StargateFacet.sol\":3834:3894  sgAddPool(10, 0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9, 2) */\n      tag_102\n        /* \"bridges/facets/StargateFacet.sol\":3844:3846  10 */\n      0x0a\n        /* \"bridges/facets/StargateFacet.sol\":3848:3890  0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9 */\n      0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9\n        /* \"bridges/facets/StargateFacet.sol\":3892:3893  2 */\n      0x02\n        /* \"bridges/facets/StargateFacet.sol\":3834:3843  sgAddPool */\n      tag_25\n        /* \"bridges/facets/StargateFacet.sol\":3834:3894  sgAddPool(10, 0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9, 2) */\n      jump\t// in\n    tag_102:\n        /* \"bridges/facets/StargateFacet.sol\":3904:3964  sgAddPool(11, 0x7F5c764cBc14f9669B88837ca1490cCa17c31607, 1) */\n      tag_103\n        /* \"bridges/facets/StargateFacet.sol\":3914:3916  11 */\n      0x0b\n        /* \"bridges/facets/StargateFacet.sol\":3918:3960  0x7F5c764cBc14f9669B88837ca1490cCa17c31607 */\n      0x7f5c764cbc14f9669b88837ca1490cca17c31607\n        /* \"bridges/facets/StargateFacet.sol\":3962:3963  1 */\n      0x01\n        /* \"bridges/facets/StargateFacet.sol\":3904:3913  sgAddPool */\n      tag_25\n        /* \"bridges/facets/StargateFacet.sol\":3904:3964  sgAddPool(11, 0x7F5c764cBc14f9669B88837ca1490cCa17c31607, 1) */\n      jump\t// in\n    tag_103:\n        /* \"bridges/facets/StargateFacet.sol\":3974:4034  sgAddPool(12, 0x04068DA6C83AFCFA0e13ba15A6696662335D5B75, 1) */\n      tag_104\n        /* \"bridges/facets/StargateFacet.sol\":3984:3986  12 */\n      0x0c\n        /* \"bridges/facets/StargateFacet.sol\":3988:4030  0x04068DA6C83AFCFA0e13ba15A6696662335D5B75 */\n      0x04068da6c83afcfa0e13ba15a6696662335d5b75\n        /* \"bridges/facets/StargateFacet.sol\":4032:4033  1 */\n      0x01\n        /* \"bridges/facets/StargateFacet.sol\":3974:3983  sgAddPool */\n      tag_25\n        /* \"bridges/facets/StargateFacet.sol\":3974:4034  sgAddPool(12, 0x04068DA6C83AFCFA0e13ba15A6696662335D5B75, 1) */\n      jump\t// in\n    tag_104:\n        /* \"bridges/facets/StargateFacet.sol\":4049:4089  SGInitialized(_stargateRouter, _chainId) */\n      0xc8ec31998a27444f477c01de93c393769fd4fc017fb63163f71f8a8ab72ccd50\n        /* \"bridges/facets/StargateFacet.sol\":4063:4078  _stargateRouter */\n      dup4\n        /* \"bridges/facets/StargateFacet.sol\":4080:4088  _chainId */\n      dup4\n        /* \"bridges/facets/StargateFacet.sol\":4049:4089  SGInitialized(_stargateRouter, _chainId) */\n      mload(0x40)\n      tag_105\n      swap3\n      swap2\n      swap1\n      tag_106\n      jump\t// in\n    tag_105:\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      log1\n        /* \"bridges/facets/StargateFacet.sol\":2848:4096  function sgInitialize(address _stargateRouter, uint16 _chainId) external {... */\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"bridges/facets/StargateFacet.sol\":8305:8620  function sgUpdateRouter(address _newAddress) external {... */\n    tag_42:\n        /* \"bridges/facets/StargateFacet.sol\":8369:8404  LibDiamond.enforceIsContractOwner() */\n      tag_108\n        /* \"bridges/facets/StargateFacet.sol\":8369:8402  LibDiamond.enforceIsContractOwner */\n      tag_70\n        /* \"bridges/facets/StargateFacet.sol\":8369:8404  LibDiamond.enforceIsContractOwner() */\n      jump\t// in\n    tag_108:\n        /* \"bridges/facets/StargateFacet.sol\":8441:8442  0 */\n      0x00\n        /* \"bridges/facets/StargateFacet.sol\":8418:8443  _newAddress == address(0) */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n        /* \"bridges/facets/StargateFacet.sol\":8418:8429  _newAddress */\n      dup2\n        /* \"bridges/facets/StargateFacet.sol\":8418:8443  _newAddress == address(0) */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n      eq\n        /* \"bridges/facets/StargateFacet.sol\":8414:8479  if (_newAddress == address(0)) revert StargateRouterAddressZero() */\n      iszero\n      tag_109\n      jumpi\n        /* \"bridges/facets/StargateFacet.sol\":8452:8479  StargateRouterAddressZero() */\n      mload(0x40)\n      0x3911c65500000000000000000000000000000000000000000000000000000000\n      dup2\n      mstore\n      0x04\n      add\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      revert\n        /* \"bridges/facets/StargateFacet.sol\":8414:8479  if (_newAddress == address(0)) revert StargateRouterAddressZero() */\n    tag_109:\n        /* \"bridges/facets/StargateFacet.sol\":8489:8506  Storage storage s */\n      0x00\n        /* \"bridges/facets/StargateFacet.sol\":8509:8521  getStorage() */\n      tag_110\n        /* \"bridges/facets/StargateFacet.sol\":8509:8519  getStorage */\n      tag_72\n        /* \"bridges/facets/StargateFacet.sol\":8509:8521  getStorage() */\n      jump\t// in\n    tag_110:\n        /* \"bridges/facets/StargateFacet.sol\":8489:8521  Storage storage s = getStorage() */\n      swap1\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":8558:8569  _newAddress */\n      dup2\n        /* \"bridges/facets/StargateFacet.sol\":8531:8532  s */\n      dup2\n        /* \"bridges/facets/StargateFacet.sol\":8531:8547  s.stargateRouter */\n      0x00\n      add\n      0x00\n        /* \"bridges/facets/StargateFacet.sol\":8531:8570  s.stargateRouter = address(_newAddress) */\n      0x0100\n      exp\n      dup2\n      sload\n      dup2\n      0xffffffffffffffffffffffffffffffffffffffff\n      mul\n      not\n      and\n      swap1\n      dup4\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n      mul\n      or\n      swap1\n      sstore\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":8585:8613  SGUpdatedRouter(_newAddress) */\n      0x9ac04272c4559bf7459414abb5568dc1df58ab649f0af4afd1510074f5cc2fec\n        /* \"bridges/facets/StargateFacet.sol\":8601:8612  _newAddress */\n      dup3\n        /* \"bridges/facets/StargateFacet.sol\":8585:8613  SGUpdatedRouter(_newAddress) */\n      mload(0x40)\n      tag_111\n      swap2\n      swap1\n      tag_112\n      jump\t// in\n    tag_111:\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      log1\n        /* \"bridges/facets/StargateFacet.sol\":8305:8620  function sgUpdateRouter(address _newAddress) external {... */\n      pop\n      pop\n      jump\t// out\n        /* \"bridges/facets/StargateFacet.sol\":8084:8299  function sgMinAmountOut(uint256 _amount) public view returns (uint256) {... */\n    tag_46:\n        /* \"bridges/facets/StargateFacet.sol\":8146:8153  uint256 */\n      0x00\n        /* \"bridges/facets/StargateFacet.sol\":8165:8182  Storage storage s */\n      dup1\n        /* \"bridges/facets/StargateFacet.sol\":8185:8197  getStorage() */\n      tag_114\n        /* \"bridges/facets/StargateFacet.sol\":8185:8195  getStorage */\n      tag_72\n        /* \"bridges/facets/StargateFacet.sol\":8185:8197  getStorage() */\n      jump\t// in\n    tag_114:\n        /* \"bridges/facets/StargateFacet.sol\":8165:8197  Storage storage s = getStorage() */\n      swap1\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":8286:8291  10000 */\n      0x2710\n        /* \"bridges/facets/StargateFacet.sol\":8270:8271  s */\n      dup2\n        /* \"bridges/facets/StargateFacet.sol\":8270:8280  s.slippage */\n      0x02\n      add\n      sload\n        /* \"bridges/facets/StargateFacet.sol\":8262:8267  10000 */\n      0x2710\n        /* \"bridges/facets/StargateFacet.sol\":8262:8280  10000 - s.slippage */\n      tag_115\n      swap2\n      swap1\n      tag_116\n      jump\t// in\n    tag_115:\n        /* \"bridges/facets/StargateFacet.sol\":8251:8258  _amount */\n      dup5\n        /* \"bridges/facets/StargateFacet.sol\":8251:8281  _amount * (10000 - s.slippage) */\n      tag_117\n      swap2\n      swap1\n      tag_118\n      jump\t// in\n    tag_117:\n        /* \"bridges/facets/StargateFacet.sol\":8250:8292  (_amount * (10000 - s.slippage)) / (10000) */\n      tag_119\n      swap2\n      swap1\n      tag_120\n      jump\t// in\n    tag_119:\n        /* \"bridges/facets/StargateFacet.sol\":8243:8292  return (_amount * (10000 - s.slippage)) / (10000) */\n      swap2\n      pop\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":8084:8299  function sgMinAmountOut(uint256 _amount) public view returns (uint256) {... */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"bridges/facets/StargateFacet.sol\":4184:6685  function sgBridgeTokens(StargateData memory _sgData)... */\n    tag_51:\n        /* \"bridges/facets/StargateFacet.sol\":4308:4312  bool */\n      0x00\n        /* \"bridges/helpers/ReentrancyGuard.sol\":680:707  ReentrancyStorage storage s */\n      dup1\n        /* \"bridges/helpers/ReentrancyGuard.sol\":710:729  reentrancyStorage() */\n      tag_122\n        /* \"bridges/helpers/ReentrancyGuard.sol\":710:727  reentrancyStorage */\n      tag_123\n        /* \"bridges/helpers/ReentrancyGuard.sol\":710:729  reentrancyStorage() */\n      jump\t// in\n    tag_122:\n        /* \"bridges/helpers/ReentrancyGuard.sol\":680:729  ReentrancyStorage storage s = reentrancyStorage() */\n      swap1\n      pop\n        /* \"bridges/helpers/ReentrancyGuard.sol\":615:616  1 */\n      0x01\n        /* \"bridges/helpers/ReentrancyGuard.sol\":743:744  s */\n      dup2\n        /* \"bridges/helpers/ReentrancyGuard.sol\":743:751  s.status */\n      0x00\n      add\n      sload\n        /* \"bridges/helpers/ReentrancyGuard.sol\":743:763  s.status == _ENTERED */\n      eq\n        /* \"bridges/helpers/ReentrancyGuard.sol\":739:789  if (s.status == _ENTERED) revert ReentrancyError() */\n      iszero\n      tag_124\n      jumpi\n        /* \"bridges/helpers/ReentrancyGuard.sol\":772:789  ReentrancyError() */\n      mload(0x40)\n      0x29f745a700000000000000000000000000000000000000000000000000000000\n      dup2\n      mstore\n      0x04\n      add\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      revert\n        /* \"bridges/helpers/ReentrancyGuard.sol\":739:789  if (s.status == _ENTERED) revert ReentrancyError() */\n    tag_124:\n        /* \"bridges/helpers/ReentrancyGuard.sol\":615:616  1 */\n      0x01\n        /* \"bridges/helpers/ReentrancyGuard.sol\":799:800  s */\n      dup2\n        /* \"bridges/helpers/ReentrancyGuard.sol\":799:807  s.status */\n      0x00\n      add\n        /* \"bridges/helpers/ReentrancyGuard.sol\":799:818  s.status = _ENTERED */\n      dup2\n      swap1\n      sstore\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":4345:4346  0 */\n      0x00\n        /* \"bridges/facets/StargateFacet.sol\":4332:4341  msg.value */\n      callvalue\n        /* \"bridges/facets/StargateFacet.sol\":4332:4346  msg.value <= 0 */\n      gt\n        /* \"bridges/facets/StargateFacet.sol\":4328:4387  if (msg.value <= 0) revert NoMsgValueForCrossChainMessage() */\n      tag_126\n      jumpi\n        /* \"bridges/facets/StargateFacet.sol\":4355:4387  NoMsgValueForCrossChainMessage() */\n      mload(0x40)\n      0xb7586d1900000000000000000000000000000000000000000000000000000000\n      dup2\n      mstore\n      0x04\n      add\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      revert\n        /* \"bridges/facets/StargateFacet.sol\":4328:4387  if (msg.value <= 0) revert NoMsgValueForCrossChainMessage() */\n    tag_126:\n        /* \"bridges/facets/StargateFacet.sol\":4416:4417  0 */\n      0x00\n        /* \"bridges/facets/StargateFacet.sol\":4401:4408  _sgData */\n      dup4\n        /* \"bridges/facets/StargateFacet.sol\":4401:4412  _sgData.qty */\n      0x00\n      add\n      mload\n        /* \"bridges/facets/StargateFacet.sol\":4401:4417  _sgData.qty <= 0 */\n      gt\n        /* \"bridges/facets/StargateFacet.sol\":4397:4441  if (_sgData.qty <= 0) revert InvalidAmount() */\n      tag_127\n      jumpi\n        /* \"bridges/facets/StargateFacet.sol\":4426:4441  InvalidAmount() */\n      mload(0x40)\n      0x2c5211c600000000000000000000000000000000000000000000000000000000\n      dup2\n      mstore\n      0x04\n      add\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      revert\n        /* \"bridges/facets/StargateFacet.sol\":4397:4441  if (_sgData.qty <= 0) revert InvalidAmount() */\n    tag_127:\n        /* \"bridges/facets/StargateFacet.sol\":4497:4498  0 */\n      0x00\n        /* \"bridges/facets/StargateFacet.sol\":4468:4499  _sgData.fromToken == address(0) */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n        /* \"bridges/facets/StargateFacet.sol\":4468:4475  _sgData */\n      dup4\n        /* \"bridges/facets/StargateFacet.sol\":4468:4485  _sgData.fromToken */\n      0x20\n      add\n      mload\n        /* \"bridges/facets/StargateFacet.sol\":4468:4499  _sgData.fromToken == address(0) */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n      eq\n        /* \"bridges/facets/StargateFacet.sol\":4468:4544  _sgData.fromToken == address(0) ||... */\n      dup1\n      tag_128\n      jumpi\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":4542:4543  0 */\n      0x00\n        /* \"bridges/facets/StargateFacet.sol\":4515:4544  _sgData.toToken == address(0) */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n        /* \"bridges/facets/StargateFacet.sol\":4515:4522  _sgData */\n      dup4\n        /* \"bridges/facets/StargateFacet.sol\":4515:4530  _sgData.toToken */\n      0x40\n      add\n      mload\n        /* \"bridges/facets/StargateFacet.sol\":4515:4544  _sgData.toToken == address(0) */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n      eq\n        /* \"bridges/facets/StargateFacet.sol\":4468:4544  _sgData.fromToken == address(0) ||... */\n    tag_128:\n        /* \"bridges/facets/StargateFacet.sol\":4468:4584  _sgData.fromToken == address(0) ||... */\n      dup1\n      tag_129\n      jumpi\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":4582:4583  0 */\n      0x00\n        /* \"bridges/facets/StargateFacet.sol\":4560:4584  _sgData.to == address(0) */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n        /* \"bridges/facets/StargateFacet.sol\":4560:4567  _sgData */\n      dup4\n        /* \"bridges/facets/StargateFacet.sol\":4560:4570  _sgData.to */\n      0xc0\n      add\n      mload\n        /* \"bridges/facets/StargateFacet.sol\":4560:4584  _sgData.to == address(0) */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n      eq\n        /* \"bridges/facets/StargateFacet.sol\":4468:4584  _sgData.fromToken == address(0) ||... */\n    tag_129:\n        /* \"bridges/facets/StargateFacet.sol\":4468:4642  _sgData.fromToken == address(0) ||... */\n      dup1\n      tag_130\n      jumpi\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":4640:4641  0 */\n      0x00\n        /* \"bridges/facets/StargateFacet.sol\":4600:4642  _sgData.destStargateComposed == address(0) */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n        /* \"bridges/facets/StargateFacet.sol\":4600:4607  _sgData */\n      dup4\n        /* \"bridges/facets/StargateFacet.sol\":4600:4628  _sgData.destStargateComposed */\n      0xe0\n      add\n      mload\n        /* \"bridges/facets/StargateFacet.sol\":4600:4642  _sgData.destStargateComposed == address(0) */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n      eq\n        /* \"bridges/facets/StargateFacet.sol\":4468:4642  _sgData.fromToken == address(0) ||... */\n    tag_130:\n        /* \"bridges/facets/StargateFacet.sol\":4451:4675  if (... */\n      iszero\n      tag_131\n      jumpi\n        /* \"bridges/facets/StargateFacet.sol\":4660:4675  InvalidConfig() */\n      mload(0x40)\n      0x35be3ac800000000000000000000000000000000000000000000000000000000\n      dup2\n      mstore\n      0x04\n      add\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      revert\n        /* \"bridges/facets/StargateFacet.sol\":4451:4675  if (... */\n    tag_131:\n        /* \"bridges/facets/StargateFacet.sol\":4712:4729  Storage storage s */\n      0x00\n        /* \"bridges/facets/StargateFacet.sol\":4732:4744  getStorage() */\n      tag_132\n        /* \"bridges/facets/StargateFacet.sol\":4732:4742  getStorage */\n      tag_72\n        /* \"bridges/facets/StargateFacet.sol\":4732:4744  getStorage() */\n      jump\t// in\n    tag_132:\n        /* \"bridges/facets/StargateFacet.sol\":4712:4744  Storage storage s = getStorage() */\n      swap1\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":4760:4822  sgCheckPoolId(s.chainId, _sgData.fromToken, _sgData.srcPoolId) */\n      tag_133\n        /* \"bridges/facets/StargateFacet.sol\":4774:4775  s */\n      dup2\n        /* \"bridges/facets/StargateFacet.sol\":4774:4783  s.chainId */\n      0x00\n      add\n      0x14\n      swap1\n      sload\n      swap1\n      0x0100\n      exp\n      swap1\n      div\n      0xffff\n      and\n        /* \"bridges/facets/StargateFacet.sol\":4785:4792  _sgData */\n      dup6\n        /* \"bridges/facets/StargateFacet.sol\":4785:4802  _sgData.fromToken */\n      0x20\n      add\n      mload\n        /* \"bridges/facets/StargateFacet.sol\":4804:4811  _sgData */\n      dup7\n        /* \"bridges/facets/StargateFacet.sol\":4804:4821  _sgData.srcPoolId */\n      0x80\n      add\n      mload\n        /* \"bridges/facets/StargateFacet.sol\":4760:4822  sgCheckPoolId(s.chainId, _sgData.fromToken, _sgData.srcPoolId) */\n      0xffff\n      and\n        /* \"bridges/facets/StargateFacet.sol\":4760:4773  sgCheckPoolId */\n      tag_57\n        /* \"bridges/facets/StargateFacet.sol\":4760:4822  sgCheckPoolId(s.chainId, _sgData.fromToken, _sgData.srcPoolId) */\n      jump\t// in\n    tag_133:\n        /* \"bridges/facets/StargateFacet.sol\":4755:4864  if (!sgCheckPoolId(s.chainId, _sgData.fromToken, _sgData.srcPoolId))... */\n      tag_134\n      jumpi\n        /* \"bridges/facets/StargateFacet.sol\":4843:4864  InvalidSourcePoolId() */\n      mload(0x40)\n      0x7790ca9900000000000000000000000000000000000000000000000000000000\n      dup2\n      mstore\n      0x04\n      add\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      revert\n        /* \"bridges/facets/StargateFacet.sol\":4755:4864  if (!sgCheckPoolId(s.chainId, _sgData.fromToken, _sgData.srcPoolId))... */\n    tag_134:\n        /* \"bridges/facets/StargateFacet.sol\":4892:5023  sgCheckPoolId(... */\n      tag_135\n        /* \"bridges/facets/StargateFacet.sol\":4923:4930  _sgData */\n      dup5\n        /* \"bridges/facets/StargateFacet.sol\":4923:4941  _sgData.dstChainId */\n      0x60\n      add\n      mload\n        /* \"bridges/facets/StargateFacet.sol\":4959:4966  _sgData */\n      dup6\n        /* \"bridges/facets/StargateFacet.sol\":4959:4974  _sgData.toToken */\n      0x40\n      add\n      mload\n        /* \"bridges/facets/StargateFacet.sol\":4992:4999  _sgData */\n      dup7\n        /* \"bridges/facets/StargateFacet.sol\":4992:5009  _sgData.dstPoolId */\n      0xa0\n      add\n      mload\n        /* \"bridges/facets/StargateFacet.sol\":4892:5023  sgCheckPoolId(... */\n      0xffff\n      and\n        /* \"bridges/facets/StargateFacet.sol\":4892:4905  sgCheckPoolId */\n      tag_57\n        /* \"bridges/facets/StargateFacet.sol\":4892:5023  sgCheckPoolId(... */\n      jump\t// in\n    tag_135:\n        /* \"bridges/facets/StargateFacet.sol\":4874:5067  if (... */\n      tag_136\n      jumpi\n        /* \"bridges/facets/StargateFacet.sol\":5041:5067  InvalidDestinationPoolId() */\n      mload(0x40)\n      0x186c877f00000000000000000000000000000000000000000000000000000000\n      dup2\n      mstore\n      0x04\n      add\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      revert\n        /* \"bridges/facets/StargateFacet.sol\":4874:5067  if (... */\n    tag_136:\n        /* \"bridges/facets/StargateFacet.sol\":5108:5128  uint256 minAmountOut */\n      0x00\n        /* \"bridges/facets/StargateFacet.sol\":5131:5158  sgMinAmountOut(_sgData.qty) */\n      tag_137\n        /* \"bridges/facets/StargateFacet.sol\":5146:5153  _sgData */\n      dup6\n        /* \"bridges/facets/StargateFacet.sol\":5146:5157  _sgData.qty */\n      0x00\n      add\n      mload\n        /* \"bridges/facets/StargateFacet.sol\":5131:5145  sgMinAmountOut */\n      tag_46\n        /* \"bridges/facets/StargateFacet.sol\":5131:5158  sgMinAmountOut(_sgData.qty) */\n      jump\t// in\n    tag_137:\n        /* \"bridges/facets/StargateFacet.sol\":5108:5158  uint256 minAmountOut = sgMinAmountOut(_sgData.qty) */\n      swap1\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":5271:5291  bytes memory payload */\n      0x00\n        /* \"bridges/facets/StargateFacet.sol\":5305:5312  _sgData */\n      dup6\n        /* \"bridges/facets/StargateFacet.sol\":5305:5315  _sgData.to */\n      0xc0\n      add\n      mload\n        /* \"bridges/facets/StargateFacet.sol\":5294:5316  abi.encode(_sgData.to) */\n      add(0x20, mload(0x40))\n      tag_138\n      swap2\n      swap1\n      tag_139\n      jump\t// in\n    tag_138:\n      mload(0x40)\n      0x20\n      dup2\n      dup4\n      sub\n      sub\n      dup2\n      mstore\n      swap1\n      0x40\n      mstore\n        /* \"bridges/facets/StargateFacet.sol\":5271:5316  bytes memory payload = abi.encode(_sgData.to) */\n      swap1\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":5374:5502  IERC20(_sgData.fromToken).safeTransferFrom(... */\n      tag_140\n        /* \"bridges/facets/StargateFacet.sol\":5430:5440  msg.sender */\n      caller\n        /* \"bridges/facets/StargateFacet.sol\":5462:5466  this */\n      address\n        /* \"bridges/facets/StargateFacet.sol\":5481:5488  _sgData */\n      dup9\n        /* \"bridges/facets/StargateFacet.sol\":5481:5492  _sgData.qty */\n      0x00\n      add\n      mload\n        /* \"bridges/facets/StargateFacet.sol\":5381:5388  _sgData */\n      dup10\n        /* \"bridges/facets/StargateFacet.sol\":5381:5398  _sgData.fromToken */\n      0x20\n      add\n      mload\n        /* \"bridges/facets/StargateFacet.sol\":5374:5416  IERC20(_sgData.fromToken).safeTransferFrom */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n      tag_141\n      swap1\n        /* \"bridges/facets/StargateFacet.sol\":5374:5502  IERC20(_sgData.fromToken).safeTransferFrom(... */\n      swap4\n      swap3\n      swap2\n      swap1\n      0xffffffff\n      and\n      jump\t// in\n    tag_140:\n        /* \"bridges/facets/StargateFacet.sol\":5513:5624  IERC20(_sgData.fromToken).safeApprove(... */\n      tag_142\n        /* \"bridges/facets/StargateFacet.sol\":5572:5573  s */\n      dup4\n        /* \"bridges/facets/StargateFacet.sol\":5572:5588  s.stargateRouter */\n      0x00\n      add\n      0x00\n      swap1\n      sload\n      swap1\n      0x0100\n      exp\n      swap1\n      div\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n        /* \"bridges/facets/StargateFacet.sol\":5603:5610  _sgData */\n      dup8\n        /* \"bridges/facets/StargateFacet.sol\":5603:5614  _sgData.qty */\n      0x00\n      add\n      mload\n        /* \"bridges/facets/StargateFacet.sol\":5520:5527  _sgData */\n      dup9\n        /* \"bridges/facets/StargateFacet.sol\":5520:5537  _sgData.fromToken */\n      0x20\n      add\n      mload\n        /* \"bridges/facets/StargateFacet.sol\":5513:5550  IERC20(_sgData.fromToken).safeApprove */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n      tag_143\n      swap1\n        /* \"bridges/facets/StargateFacet.sol\":5513:5624  IERC20(_sgData.fromToken).safeApprove(... */\n      swap3\n      swap2\n      swap1\n      0xffffffff\n      and\n      jump\t// in\n    tag_142:\n        /* \"bridges/facets/StargateFacet.sol\":5739:5740  s */\n      dup3\n        /* \"bridges/facets/StargateFacet.sol\":5739:5755  s.stargateRouter */\n      0x00\n      add\n      0x00\n      swap1\n      sload\n      swap1\n      0x0100\n      exp\n      swap1\n      div\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n        /* \"bridges/facets/StargateFacet.sol\":5723:5761  IStargateRouter(s.stargateRouter).swap */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n      0x9fbf10fc\n        /* \"bridges/facets/StargateFacet.sol\":5769:5778  msg.value */\n      callvalue\n        /* \"bridges/facets/StargateFacet.sol\":5793:5800  _sgData */\n      dup9\n        /* \"bridges/facets/StargateFacet.sol\":5793:5811  _sgData.dstChainId */\n      0x60\n      add\n      mload\n        /* \"bridges/facets/StargateFacet.sol\":5853:5860  _sgData */\n      dup10\n        /* \"bridges/facets/StargateFacet.sol\":5853:5870  _sgData.srcPoolId */\n      0x80\n      add\n      mload\n        /* \"bridges/facets/StargateFacet.sol\":5914:5921  _sgData */\n      dup11\n        /* \"bridges/facets/StargateFacet.sol\":5914:5931  _sgData.dstPoolId */\n      0xa0\n      add\n      mload\n        /* \"bridges/facets/StargateFacet.sol\":5988:5998  msg.sender */\n      caller\n        /* \"bridges/facets/StargateFacet.sol\":6083:6090  _sgData */\n      dup13\n        /* \"bridges/facets/StargateFacet.sol\":6083:6094  _sgData.qty */\n      0x00\n      add\n      mload\n        /* \"bridges/facets/StargateFacet.sol\":6153:6165  minAmountOut */\n      dup10\n        /* \"bridges/facets/StargateFacet.sol\":6205:6245  IStargateRouter.lzTxObj(200000, 0, \"0x\") */\n      mload(0x40)\n      dup1\n      0x60\n      add\n      0x40\n      mstore\n      dup1\n        /* \"bridges/facets/StargateFacet.sol\":6229:6235  200000 */\n      0x030d40\n        /* \"bridges/facets/StargateFacet.sol\":6205:6245  IStargateRouter.lzTxObj(200000, 0, \"0x\") */\n      dup2\n      mstore\n      0x20\n      add\n        /* \"bridges/facets/StargateFacet.sol\":6237:6238  0 */\n      0x00\n        /* \"bridges/facets/StargateFacet.sol\":6205:6245  IStargateRouter.lzTxObj(200000, 0, \"0x\") */\n      dup2\n      mstore\n      0x20\n      add\n      mload(0x40)\n      dup1\n      0x40\n      add\n      0x40\n      mstore\n      dup1\n      0x02\n      dup2\n      mstore\n      0x20\n      add\n      0x3078000000000000000000000000000000000000000000000000000000000000\n      dup2\n      mstore\n      pop\n      dup2\n      mstore\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":6295:6302  _sgData */\n      dup16\n        /* \"bridges/facets/StargateFacet.sol\":6295:6323  _sgData.destStargateComposed */\n      0xe0\n      add\n      mload\n        /* \"bridges/facets/StargateFacet.sol\":6278:6324  abi.encodePacked(_sgData.destStargateComposed) */\n      add(0x20, mload(0x40))\n      tag_144\n      swap2\n      swap1\n      tag_81\n      jump\t// in\n    tag_144:\n      mload(0x40)\n      0x20\n      dup2\n      dup4\n      sub\n      sub\n      dup2\n      mstore\n      swap1\n      0x40\n      mstore\n        /* \"bridges/facets/StargateFacet.sol\":6390:6397  payload */\n      dup12\n        /* \"bridges/facets/StargateFacet.sol\":5723:6424  IStargateRouter(s.stargateRouter).swap{value: msg.value}(... */\n      mload(0x40)\n      dup12\n      0xffffffff\n      and\n      0xe0\n      shl\n      dup2\n      mstore\n      0x04\n      add\n      tag_145\n      swap10\n      swap9\n      swap8\n      swap7\n      swap6\n      swap5\n      swap4\n      swap3\n      swap2\n      swap1\n      tag_146\n      jump\t// in\n    tag_145:\n      0x00\n      mload(0x40)\n      dup1\n      dup4\n      sub\n      dup2\n      dup6\n      dup9\n      dup1\n      extcodesize\n      iszero\n      dup1\n      iszero\n      tag_147\n      jumpi\n      0x00\n      dup1\n      revert\n    tag_147:\n      pop\n      gas\n      call\n      iszero\n      dup1\n      iszero\n      tag_149\n      jumpi\n      returndatasize\n      0x00\n      dup1\n      returndatacopy\n      revert(0x00, returndatasize)\n    tag_149:\n      pop\n      pop\n      pop\n      pop\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":6440:6656  SGTransferStarted(... */\n      0x7a72e6f4a3d77f8a5a6c536a973421c5bf00107f9aec7995661537673b8be087\n        /* \"bridges/facets/StargateFacet.sol\":6495:6502  _sgData */\n      dup7\n        /* \"bridges/facets/StargateFacet.sol\":6495:6512  _sgData.fromToken */\n      0x20\n      add\n      mload\n        /* \"bridges/facets/StargateFacet.sol\":6526:6533  _sgData */\n      dup8\n        /* \"bridges/facets/StargateFacet.sol\":6526:6541  _sgData.toToken */\n      0x40\n      add\n      mload\n        /* \"bridges/facets/StargateFacet.sol\":6555:6565  msg.sender */\n      caller\n        /* \"bridges/facets/StargateFacet.sol\":6579:6586  _sgData */\n      dup10\n        /* \"bridges/facets/StargateFacet.sol\":6579:6589  _sgData.to */\n      0xc0\n      add\n      mload\n        /* \"bridges/facets/StargateFacet.sol\":6603:6610  _sgData */\n      dup11\n        /* \"bridges/facets/StargateFacet.sol\":6603:6614  _sgData.qty */\n      0x00\n      add\n      mload\n        /* \"bridges/facets/StargateFacet.sol\":6628:6635  _sgData */\n      dup12\n        /* \"bridges/facets/StargateFacet.sol\":6628:6646  _sgData.dstChainId */\n      0x60\n      add\n      mload\n        /* \"bridges/facets/StargateFacet.sol\":6440:6656  SGTransferStarted(... */\n      mload(0x40)\n      tag_150\n      swap7\n      swap6\n      swap5\n      swap4\n      swap3\n      swap2\n      swap1\n      tag_151\n      jump\t// in\n    tag_150:\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      log1\n        /* \"bridges/facets/StargateFacet.sol\":6674:6678  true */\n      0x01\n        /* \"bridges/facets/StargateFacet.sol\":6667:6678  return true */\n      swap5\n      pop\n      pop\n      pop\n      pop\n        /* \"bridges/helpers/ReentrancyGuard.sol\":572:573  0 */\n      0x00\n        /* \"bridges/helpers/ReentrancyGuard.sol\":839:840  s */\n      dup2\n        /* \"bridges/helpers/ReentrancyGuard.sol\":839:847  s.status */\n      0x00\n      add\n        /* \"bridges/helpers/ReentrancyGuard.sol\":839:862  s.status = _NOT_ENTERED */\n      dup2\n      swap1\n      sstore\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":4184:6685  function sgBridgeTokens(StargateData memory _sgData)... */\n      pop\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"bridges/facets/StargateFacet.sol\":9506:9755  function sgCheckPoolId(... */\n    tag_57:\n        /* \"bridges/facets/StargateFacet.sol\":9630:9634  bool */\n      0x00\n        /* \"bridges/facets/StargateFacet.sol\":9646:9663  Storage storage s */\n      dup1\n        /* \"bridges/facets/StargateFacet.sol\":9666:9678  getStorage() */\n      tag_153\n        /* \"bridges/facets/StargateFacet.sol\":9666:9676  getStorage */\n      tag_72\n        /* \"bridges/facets/StargateFacet.sol\":9666:9678  getStorage() */\n      jump\t// in\n    tag_153:\n        /* \"bridges/facets/StargateFacet.sol\":9646:9678  Storage storage s = getStorage() */\n      swap1\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":9726:9733  _poolId */\n      dup3\n        /* \"bridges/facets/StargateFacet.sol\":9695:9696  s */\n      dup2\n        /* \"bridges/facets/StargateFacet.sol\":9695:9704  s.poolIds */\n      0x03\n      add\n        /* \"bridges/facets/StargateFacet.sol\":9695:9714  s.poolIds[_chainId] */\n      0x00\n        /* \"bridges/facets/StargateFacet.sol\":9705:9713  _chainId */\n      dup8\n        /* \"bridges/facets/StargateFacet.sol\":9695:9714  s.poolIds[_chainId] */\n      0xffff\n      and\n      0xffff\n      and\n      dup2\n      mstore\n      0x20\n      add\n      swap1\n      dup2\n      mstore\n      0x20\n      add\n      0x00\n      keccak256\n        /* \"bridges/facets/StargateFacet.sol\":9695:9722  s.poolIds[_chainId][_token] */\n      0x00\n        /* \"bridges/facets/StargateFacet.sol\":9715:9721  _token */\n      dup7\n        /* \"bridges/facets/StargateFacet.sol\":9695:9722  s.poolIds[_chainId][_token] */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n      dup2\n      mstore\n      0x20\n      add\n      swap1\n      dup2\n      mstore\n      0x20\n      add\n      0x00\n      keccak256\n      sload\n        /* \"bridges/facets/StargateFacet.sol\":9695:9733  s.poolIds[_chainId][_token] == _poolId */\n      eq\n        /* \"bridges/facets/StargateFacet.sol\":9695:9748  s.poolIds[_chainId][_token] == _poolId ? true : false */\n      tag_154\n      jumpi\n        /* \"bridges/facets/StargateFacet.sol\":9743:9748  false */\n      0x00\n        /* \"bridges/facets/StargateFacet.sol\":9695:9748  s.poolIds[_chainId][_token] == _poolId ? true : false */\n      jump(tag_155)\n    tag_154:\n        /* \"bridges/facets/StargateFacet.sol\":9736:9740  true */\n      0x01\n        /* \"bridges/facets/StargateFacet.sol\":9695:9748  s.poolIds[_chainId][_token] == _poolId ? true : false */\n    tag_155:\n        /* \"bridges/facets/StargateFacet.sol\":9688:9748  return s.poolIds[_chainId][_token] == _poolId ? true : false */\n      swap2\n      pop\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":9506:9755  function sgCheckPoolId(... */\n      swap4\n      swap3\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"bridges/facets/StargateFacet.sol\":7038:7561  function sgReceive(... */\n    tag_63:\n        /* \"bridges/facets/StargateFacet.sol\":7255:7272  Storage storage s */\n      0x00\n        /* \"bridges/facets/StargateFacet.sol\":7275:7287  getStorage() */\n      tag_157\n        /* \"bridges/facets/StargateFacet.sol\":7275:7285  getStorage */\n      tag_72\n        /* \"bridges/facets/StargateFacet.sol\":7275:7287  getStorage() */\n      jump\t// in\n    tag_157:\n        /* \"bridges/facets/StargateFacet.sol\":7255:7287  Storage storage s = getStorage() */\n      swap1\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":7323:7324  s */\n      dup1\n        /* \"bridges/facets/StargateFacet.sol\":7323:7339  s.stargateRouter */\n      0x00\n      add\n      0x00\n      swap1\n      sload\n      swap1\n      0x0100\n      exp\n      swap1\n      div\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n        /* \"bridges/facets/StargateFacet.sol\":7301:7340  msg.sender != address(s.stargateRouter) */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n        /* \"bridges/facets/StargateFacet.sol\":7301:7311  msg.sender */\n      caller\n        /* \"bridges/facets/StargateFacet.sol\":7301:7340  msg.sender != address(s.stargateRouter) */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n      eq\n        /* \"bridges/facets/StargateFacet.sol\":7297:7386  if (msg.sender != address(s.stargateRouter))... */\n      tag_158\n      jumpi\n        /* \"bridges/facets/StargateFacet.sol\":7361:7386  SenderNotStargateRouter() */\n      mload(0x40)\n      0xdade3c7100000000000000000000000000000000000000000000000000000000\n      dup2\n      mstore\n      0x04\n      add\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      revert\n        /* \"bridges/facets/StargateFacet.sol\":7297:7386  if (msg.sender != address(s.stargateRouter))... */\n    tag_158:\n        /* \"bridges/facets/StargateFacet.sol\":7397:7412  address _toAddr */\n      0x00\n        /* \"bridges/facets/StargateFacet.sol\":7426:7434  _payload */\n      dup3\n        /* \"bridges/facets/StargateFacet.sol\":7415:7446  abi.decode(_payload, (address)) */\n      dup1\n      0x20\n      add\n      swap1\n      mload\n      dup2\n      add\n      swap1\n      tag_159\n      swap2\n      swap1\n      tag_160\n      jump\t// in\n    tag_159:\n        /* \"bridges/facets/StargateFacet.sol\":7397:7446  address _toAddr = abi.decode(_payload, (address)) */\n      swap1\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":7463:7469  _token */\n      dup5\n        /* \"bridges/facets/StargateFacet.sol\":7456:7479  IERC20(_token).transfer */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n      0xa9059cbb\n        /* \"bridges/facets/StargateFacet.sol\":7480:7487  _toAddr */\n      dup3\n        /* \"bridges/facets/StargateFacet.sol\":7489:7497  amountLD */\n      dup7\n        /* \"bridges/facets/StargateFacet.sol\":7456:7498  IERC20(_token).transfer(_toAddr, amountLD) */\n      mload(0x40)\n      dup4\n      0xffffffff\n      and\n      0xe0\n      shl\n      dup2\n      mstore\n      0x04\n      add\n      tag_161\n      swap3\n      swap2\n      swap1\n      tag_162\n      jump\t// in\n    tag_161:\n      0x20\n      mload(0x40)\n      dup1\n      dup4\n      sub\n      dup2\n      0x00\n      dup8\n      dup1\n      extcodesize\n      iszero\n      dup1\n      iszero\n      tag_163\n      jumpi\n      0x00\n      dup1\n      revert\n    tag_163:\n      pop\n      gas\n      call\n      iszero\n      dup1\n      iszero\n      tag_165\n      jumpi\n      returndatasize\n      0x00\n      dup1\n      returndatacopy\n      revert(0x00, returndatasize)\n    tag_165:\n      pop\n      pop\n      pop\n      pop\n      mload(0x40)\n      returndatasize\n      not(0x1f)\n      0x1f\n      dup3\n      add\n      and\n      dup3\n      add\n      dup1\n      0x40\n      mstore\n      pop\n      dup2\n      add\n      swap1\n      tag_166\n      swap2\n      swap1\n      tag_167\n      jump\t// in\n    tag_166:\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":7513:7554  SGReceivedOnDestination(_token, amountLD) */\n      0x827e3293895509ef037b7438d4e009f37ad7b2562a14695d9dfd9cb065984218\n        /* \"bridges/facets/StargateFacet.sol\":7537:7543  _token */\n      dup6\n        /* \"bridges/facets/StargateFacet.sol\":7545:7553  amountLD */\n      dup6\n        /* \"bridges/facets/StargateFacet.sol\":7513:7554  SGReceivedOnDestination(_token, amountLD) */\n      mload(0x40)\n      tag_168\n      swap3\n      swap2\n      swap1\n      tag_162\n      jump\t// in\n    tag_168:\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      log1\n        /* \"bridges/facets/StargateFacet.sol\":7038:7561  function sgReceive(... */\n      pop\n      pop\n      pop\n      pop\n      pop\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"bridges/facets/StargateFacet.sol\":8882:9194  function sgWithdraw(... */\n    tag_67:\n        /* \"bridges/helpers/ReentrancyGuard.sol\":680:707  ReentrancyStorage storage s */\n      0x00\n        /* \"bridges/helpers/ReentrancyGuard.sol\":710:729  reentrancyStorage() */\n      tag_170\n        /* \"bridges/helpers/ReentrancyGuard.sol\":710:727  reentrancyStorage */\n      tag_123\n        /* \"bridges/helpers/ReentrancyGuard.sol\":710:729  reentrancyStorage() */\n      jump\t// in\n    tag_170:\n        /* \"bridges/helpers/ReentrancyGuard.sol\":680:729  ReentrancyStorage storage s = reentrancyStorage() */\n      swap1\n      pop\n        /* \"bridges/helpers/ReentrancyGuard.sol\":615:616  1 */\n      0x01\n        /* \"bridges/helpers/ReentrancyGuard.sol\":743:744  s */\n      dup2\n        /* \"bridges/helpers/ReentrancyGuard.sol\":743:751  s.status */\n      0x00\n      add\n      sload\n        /* \"bridges/helpers/ReentrancyGuard.sol\":743:763  s.status == _ENTERED */\n      eq\n        /* \"bridges/helpers/ReentrancyGuard.sol\":739:789  if (s.status == _ENTERED) revert ReentrancyError() */\n      iszero\n      tag_171\n      jumpi\n        /* \"bridges/helpers/ReentrancyGuard.sol\":772:789  ReentrancyError() */\n      mload(0x40)\n      0x29f745a700000000000000000000000000000000000000000000000000000000\n      dup2\n      mstore\n      0x04\n      add\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      revert\n        /* \"bridges/helpers/ReentrancyGuard.sol\":739:789  if (s.status == _ENTERED) revert ReentrancyError() */\n    tag_171:\n        /* \"bridges/helpers/ReentrancyGuard.sol\":615:616  1 */\n      0x01\n        /* \"bridges/helpers/ReentrancyGuard.sol\":799:800  s */\n      dup2\n        /* \"bridges/helpers/ReentrancyGuard.sol\":799:807  s.status */\n      0x00\n      add\n        /* \"bridges/helpers/ReentrancyGuard.sol\":799:818  s.status = _ENTERED */\n      dup2\n      swap1\n      sstore\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":9020:9055  LibDiamond.enforceIsContractOwner() */\n      tag_173\n        /* \"bridges/facets/StargateFacet.sol\":9020:9053  LibDiamond.enforceIsContractOwner */\n      tag_70\n        /* \"bridges/facets/StargateFacet.sol\":9020:9055  LibDiamond.enforceIsContractOwner() */\n      jump\t// in\n    tag_173:\n        /* \"bridges/facets/StargateFacet.sol\":9065:9115  IERC20(_token).safeApprove(address(this), _amount) */\n      tag_174\n        /* \"bridges/facets/StargateFacet.sol\":9100:9104  this */\n      address\n        /* \"bridges/facets/StargateFacet.sol\":9107:9114  _amount */\n      dup4\n        /* \"bridges/facets/StargateFacet.sol\":9072:9078  _token */\n      dup7\n        /* \"bridges/facets/StargateFacet.sol\":9065:9091  IERC20(_token).safeApprove */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n      tag_143\n      swap1\n        /* \"bridges/facets/StargateFacet.sol\":9065:9115  IERC20(_token).safeApprove(address(this), _amount) */\n      swap3\n      swap2\n      swap1\n      0xffffffff\n      and\n      jump\t// in\n    tag_174:\n        /* \"bridges/facets/StargateFacet.sol\":9125:9187  IERC20(_token).safeTransferFrom(address(this), _user, _amount) */\n      tag_175\n        /* \"bridges/facets/StargateFacet.sol\":9165:9169  this */\n      address\n        /* \"bridges/facets/StargateFacet.sol\":9172:9177  _user */\n      dup5\n        /* \"bridges/facets/StargateFacet.sol\":9179:9186  _amount */\n      dup5\n        /* \"bridges/facets/StargateFacet.sol\":9132:9138  _token */\n      dup8\n        /* \"bridges/facets/StargateFacet.sol\":9125:9156  IERC20(_token).safeTransferFrom */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n      tag_141\n      swap1\n        /* \"bridges/facets/StargateFacet.sol\":9125:9187  IERC20(_token).safeTransferFrom(address(this), _user, _amount) */\n      swap4\n      swap3\n      swap2\n      swap1\n      0xffffffff\n      and\n      jump\t// in\n    tag_175:\n        /* \"bridges/helpers/ReentrancyGuard.sol\":572:573  0 */\n      0x00\n        /* \"bridges/helpers/ReentrancyGuard.sol\":839:840  s */\n      dup2\n        /* \"bridges/helpers/ReentrancyGuard.sol\":839:847  s.status */\n      0x00\n      add\n        /* \"bridges/helpers/ReentrancyGuard.sol\":839:862  s.status = _NOT_ENTERED */\n      dup2\n      swap1\n      sstore\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":8882:9194  function sgWithdraw(... */\n      pop\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"bridges/libs/LibDiamond.sol\":1898:2048  function enforceIsContractOwner() internal view {... */\n    tag_70:\n        /* \"bridges/libs/LibDiamond.sol\":1974:1990  diamondStorage() */\n      tag_177\n        /* \"bridges/libs/LibDiamond.sol\":1974:1988  diamondStorage */\n      tag_178\n        /* \"bridges/libs/LibDiamond.sol\":1974:1990  diamondStorage() */\n      jump\t// in\n    tag_177:\n        /* \"bridges/libs/LibDiamond.sol\":1974:2004  diamondStorage().contractOwner */\n      0x04\n      add\n      0x00\n      swap1\n      sload\n      swap1\n      0x0100\n      exp\n      swap1\n      div\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n        /* \"bridges/libs/LibDiamond.sol\":1960:2004  msg.sender == diamondStorage().contractOwner */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n        /* \"bridges/libs/LibDiamond.sol\":1960:1970  msg.sender */\n      caller\n        /* \"bridges/libs/LibDiamond.sol\":1960:2004  msg.sender == diamondStorage().contractOwner */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n      eq\n        /* \"bridges/libs/LibDiamond.sol\":1952:2043  require(msg.sender == diamondStorage().contractOwner, \"LibDiamond: Must be contract owner\") */\n      tag_179\n      jumpi\n      mload(0x40)\n      0x08c379a000000000000000000000000000000000000000000000000000000000\n      dup2\n      mstore\n      0x04\n      add\n      tag_180\n      swap1\n      tag_181\n      jump\t// in\n    tag_180:\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      revert\n    tag_179:\n        /* \"bridges/libs/LibDiamond.sol\":1898:2048  function enforceIsContractOwner() internal view {... */\n      jump\t// out\n        /* \"bridges/facets/StargateFacet.sol\":10031:10257  function getStorage() private pure returns (Storage storage s) {... */\n    tag_72:\n        /* \"bridges/facets/StargateFacet.sol\":10075:10092  Storage storage s */\n      0x00\n        /* \"bridges/facets/StargateFacet.sol\":10104:10121  bytes32 namespace */\n      dup1\n        /* \"bridges/facets/StargateFacet.sol\":1966:2007  keccak256(\"io.etherspot.facets.stargate\") */\n      0xbaeadb48cbcf0176d6c6ac156b0140abe0fb28a100a9a6a8b5df37e55693b1c8\n        /* \"bridges/facets/StargateFacet.sol\":10104:10133  bytes32 namespace = NAMESPACE */\n      swap1\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":10232:10241  namespace */\n      dup1\n        /* \"bridges/facets/StargateFacet.sol\":10222:10241  s.slot := namespace */\n      swap2\n      pop\n        /* \"bridges/facets/StargateFacet.sol\":10208:10251  {... */\n      pop\n      swap1\n      jump\t// out\n        /* \"bridges/helpers/ReentrancyGuard.sol\":937:1212  function reentrancyStorage()... */\n    tag_123:\n        /* \"bridges/helpers/ReentrancyGuard.sol\":1012:1042  ReentrancyStorage storage data */\n      0x00\n        /* \"bridges/helpers/ReentrancyGuard.sol\":1058:1074  bytes32 position */\n      dup1\n        /* \"bridges/helpers/ReentrancyGuard.sol\":1077:1086  NAMESPACE */\n      0xa65bb2f450488ab0858c00edc14abc5297769bf42adb48cfb77752890e8b697b\n        /* \"bridges/helpers/ReentrancyGuard.sol\":1058:1086  bytes32 position = NAMESPACE */\n      swap1\n      pop\n        /* \"bridges/helpers/ReentrancyGuard.sol\":1188:1196  position */\n      dup1\n        /* \"bridges/helpers/ReentrancyGuard.sol\":1175:1196  data.slot := position */\n      swap2\n      pop\n        /* \"bridges/helpers/ReentrancyGuard.sol\":1161:1206  {... */\n      pop\n      swap1\n      jump\t// out\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":974:1215  function safeTransferFrom(... */\n    tag_141:\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1112:1208  _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)) */\n      tag_185\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1132:1137  token */\n      dup5\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1162:1189  token.transferFrom.selector */\n      shl(0xe0, 0x23b872dd)\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1191:1195  from */\n      dup6\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1197:1199  to */\n      dup6\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1201:1206  value */\n      dup6\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1139:1207  abi.encodeWithSelector(token.transferFrom.selector, from, to, value) */\n      add(0x24, mload(0x40))\n      tag_186\n      swap4\n      swap3\n      swap2\n      swap1\n      tag_187\n      jump\t// in\n    tag_186:\n      mload(0x40)\n      0x20\n      dup2\n      dup4\n      sub\n      sub\n      dup2\n      mstore\n      swap1\n      0x40\n      mstore\n      swap1\n      not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n      and\n      0x20\n      dup3\n      add\n      dup1\n      mload\n      0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n      dup4\n      dup2\n      dup4\n      and\n      or\n      dup4\n      mstore\n      pop\n      pop\n      pop\n      pop\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1112:1131  _callOptionalReturn */\n      tag_188\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1112:1208  _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)) */\n      jump\t// in\n    tag_185:\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":974:1215  function safeTransferFrom(... */\n      pop\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1475:2078  function safeApprove(... */\n    tag_143:\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1839:1840  0 */\n      0x00\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1830:1835  value */\n      dup2\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1830:1840  value == 0 */\n      eq\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1829:1891  (value == 0) || (token.allowance(address(this), spender) == 0) */\n      dup1\n      tag_190\n      jumpi\n      pop\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1889:1890  0 */\n      0x00\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1846:1851  token */\n      dup4\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1846:1861  token.allowance */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n      0xdd62ed3e\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1870:1874  this */\n      address\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1877:1884  spender */\n      dup6\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1846:1885  token.allowance(address(this), spender) */\n      mload(0x40)\n      dup4\n      0xffffffff\n      and\n      0xe0\n      shl\n      dup2\n      mstore\n      0x04\n      add\n      tag_191\n      swap3\n      swap2\n      swap1\n      tag_192\n      jump\t// in\n    tag_191:\n      0x20\n      mload(0x40)\n      dup1\n      dup4\n      sub\n      dup2\n      dup7\n      dup1\n      extcodesize\n      iszero\n      dup1\n      iszero\n      tag_193\n      jumpi\n      0x00\n      dup1\n      revert\n    tag_193:\n      pop\n      gas\n      staticcall\n      iszero\n      dup1\n      iszero\n      tag_195\n      jumpi\n      returndatasize\n      0x00\n      dup1\n      returndatacopy\n      revert(0x00, returndatasize)\n    tag_195:\n      pop\n      pop\n      pop\n      pop\n      mload(0x40)\n      returndatasize\n      not(0x1f)\n      0x1f\n      dup3\n      add\n      and\n      dup3\n      add\n      dup1\n      0x40\n      mstore\n      pop\n      dup2\n      add\n      swap1\n      tag_196\n      swap2\n      swap1\n      tag_197\n      jump\t// in\n    tag_196:\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1846:1890  token.allowance(address(this), spender) == 0 */\n      eq\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1829:1891  (value == 0) || (token.allowance(address(this), spender) == 0) */\n    tag_190:\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1808:1971  require(... */\n      tag_198\n      jumpi\n      mload(0x40)\n      0x08c379a000000000000000000000000000000000000000000000000000000000\n      dup2\n      mstore\n      0x04\n      add\n      tag_199\n      swap1\n      tag_200\n      jump\t// in\n    tag_199:\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      revert\n    tag_198:\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1981:2071  _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)) */\n      tag_201\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":2001:2006  token */\n      dup4\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":2031:2053  token.approve.selector */\n      shl(0xe0, 0x095ea7b3)\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":2055:2062  spender */\n      dup5\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":2064:2069  value */\n      dup5\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":2008:2070  abi.encodeWithSelector(token.approve.selector, spender, value) */\n      add(0x24, mload(0x40))\n      tag_202\n      swap3\n      swap2\n      swap1\n      tag_162\n      jump\t// in\n    tag_202:\n      mload(0x40)\n      0x20\n      dup2\n      dup4\n      sub\n      sub\n      dup2\n      mstore\n      swap1\n      0x40\n      mstore\n      swap1\n      not(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n      and\n      0x20\n      dup3\n      add\n      dup1\n      mload\n      0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n      dup4\n      dup2\n      dup4\n      and\n      or\n      dup4\n      mstore\n      pop\n      pop\n      pop\n      pop\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1981:2000  _callOptionalReturn */\n      tag_188\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1981:2071  _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)) */\n      jump\t// in\n    tag_201:\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":1475:2078  function safeApprove(... */\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"bridges/libs/LibDiamond.sol\":1191:1422  function diamondStorage() internal pure returns (DiamondStorage storage ds) {... */\n    tag_178:\n        /* \"bridges/libs/LibDiamond.sol\":1240:1265  DiamondStorage storage ds */\n      0x00\n        /* \"bridges/libs/LibDiamond.sol\":1273:1289  bytes32 position */\n      dup1\n        /* \"bridges/libs/LibDiamond.sol\":203:248  keccak256(\"diamond.standard.diamond.storage\") */\n      0xc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c\n        /* \"bridges/libs/LibDiamond.sol\":1273:1316  bytes32 position = DIAMOND_STORAGE_POSITION */\n      swap1\n      pop\n        /* \"bridges/libs/LibDiamond.sol\":1404:1412  position */\n      dup1\n        /* \"bridges/libs/LibDiamond.sol\":1393:1412  ds.slot := position */\n      swap2\n      pop\n        /* \"bridges/libs/LibDiamond.sol\":1383:1418  {... */\n      pop\n      swap1\n      jump\t// out\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":3747:4453  function _callOptionalReturn(IERC20 token, bytes memory data) private {... */\n    tag_188:\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4166:4189  bytes memory returndata */\n      0x00\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4192:4261  address(token).functionCall(data, \"SafeERC20: low-level call failed\") */\n      tag_205\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4220:4224  data */\n      dup3\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4192:4261  address(token).functionCall(data, \"SafeERC20: low-level call failed\") */\n      mload(0x40)\n      dup1\n      0x40\n      add\n      0x40\n      mstore\n      dup1\n      0x20\n      dup2\n      mstore\n      0x20\n      add\n      0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564\n      dup2\n      mstore\n      pop\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4200:4205  token */\n      dup6\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4192:4219  address(token).functionCall */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n      tag_206\n      swap1\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4192:4261  address(token).functionCall(data, \"SafeERC20: low-level call failed\") */\n      swap3\n      swap2\n      swap1\n      0xffffffff\n      and\n      jump\t// in\n    tag_205:\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4166:4261  bytes memory returndata = address(token).functionCall(data, \"SafeERC20: low-level call failed\") */\n      swap1\n      pop\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4295:4296  0 */\n      0x00\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4275:4285  returndata */\n      dup2\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4275:4292  returndata.length */\n      mload\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4275:4296  returndata.length > 0 */\n      gt\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4271:4447  if (returndata.length > 0) {... */\n      iszero\n      tag_207\n      jumpi\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4370:4380  returndata */\n      dup1\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4359:4389  abi.decode(returndata, (bool)) */\n      dup1\n      0x20\n      add\n      swap1\n      mload\n      dup2\n      add\n      swap1\n      tag_208\n      swap2\n      swap1\n      tag_167\n      jump\t// in\n    tag_208:\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4351:4436  require(abi.decode(returndata, (bool)), \"SafeERC20: ERC20 operation did not succeed\") */\n      tag_209\n      jumpi\n      mload(0x40)\n      0x08c379a000000000000000000000000000000000000000000000000000000000\n      dup2\n      mstore\n      0x04\n      add\n      tag_210\n      swap1\n      tag_211\n      jump\t// in\n    tag_210:\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      revert\n    tag_209:\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":4271:4447  if (returndata.length > 0) {... */\n    tag_207:\n        /* \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":3747:4453  function _callOptionalReturn(IERC20 token, bytes memory data) private {... */\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"@openzeppelin/contracts/utils/Address.sol\":3861:4084  function functionCall(... */\n    tag_206:\n        /* \"@openzeppelin/contracts/utils/Address.sol\":3994:4006  bytes memory */\n      0x60\n        /* \"@openzeppelin/contracts/utils/Address.sol\":4025:4077  functionCallWithValue(target, data, 0, errorMessage) */\n      tag_213\n        /* \"@openzeppelin/contracts/utils/Address.sol\":4047:4053  target */\n      dup5\n        /* \"@openzeppelin/contracts/utils/Address.sol\":4055:4059  data */\n      dup5\n        /* \"@openzeppelin/contracts/utils/Address.sol\":4061:4062  0 */\n      0x00\n        /* \"@openzeppelin/contracts/utils/Address.sol\":4064:4076  errorMessage */\n      dup6\n        /* \"@openzeppelin/contracts/utils/Address.sol\":4025:4046  functionCallWithValue */\n      tag_214\n        /* \"@openzeppelin/contracts/utils/Address.sol\":4025:4077  functionCallWithValue(target, data, 0, errorMessage) */\n      jump\t// in\n    tag_213:\n        /* \"@openzeppelin/contracts/utils/Address.sol\":4018:4077  return functionCallWithValue(target, data, 0, errorMessage) */\n      swap1\n      pop\n        /* \"@openzeppelin/contracts/utils/Address.sol\":3861:4084  function functionCall(... */\n      swap4\n      swap3\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"@openzeppelin/contracts/utils/Address.sol\":4948:5447  function functionCallWithValue(... */\n    tag_214:\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5113:5125  bytes memory */\n      0x60\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5170:5175  value */\n      dup3\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5145:5166  address(this).balance */\n      selfbalance\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5145:5175  address(this).balance >= value */\n      lt\n      iszero\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5137:5218  require(address(this).balance >= value, \"Address: insufficient balance for call\") */\n      tag_216\n      jumpi\n      mload(0x40)\n      0x08c379a000000000000000000000000000000000000000000000000000000000\n      dup2\n      mstore\n      0x04\n      add\n      tag_217\n      swap1\n      tag_218\n      jump\t// in\n    tag_217:\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      revert\n    tag_216:\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5236:5254  isContract(target) */\n      tag_219\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5247:5253  target */\n      dup6\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5236:5246  isContract */\n      tag_220\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5236:5254  isContract(target) */\n      jump\t// in\n    tag_219:\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5228:5288  require(isContract(target), \"Address: call to non-contract\") */\n      tag_221\n      jumpi\n      mload(0x40)\n      0x08c379a000000000000000000000000000000000000000000000000000000000\n      dup2\n      mstore\n      0x04\n      add\n      tag_222\n      swap1\n      tag_223\n      jump\t// in\n    tag_222:\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      revert\n    tag_221:\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5300:5312  bool success */\n      0x00\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5314:5337  bytes memory returndata */\n      dup1\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5341:5347  target */\n      dup7\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5341:5352  target.call */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5360:5365  value */\n      dup6\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5367:5371  data */\n      dup8\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5341:5372  target.call{value: value}(data) */\n      mload(0x40)\n      tag_224\n      swap2\n      swap1\n      tag_225\n      jump\t// in\n    tag_224:\n      0x00\n      mload(0x40)\n      dup1\n      dup4\n      sub\n      dup2\n      dup6\n      dup8\n      gas\n      call\n      swap3\n      pop\n      pop\n      pop\n      returndatasize\n      dup1\n      0x00\n      dup2\n      eq\n      tag_228\n      jumpi\n      mload(0x40)\n      swap2\n      pop\n      and(add(returndatasize, 0x3f), not(0x1f))\n      dup3\n      add\n      0x40\n      mstore\n      returndatasize\n      dup3\n      mstore\n      returndatasize\n      0x00\n      0x20\n      dup5\n      add\n      returndatacopy\n      jump(tag_227)\n    tag_228:\n      0x60\n      swap2\n      pop\n    tag_227:\n      pop\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5299:5372  (bool success, bytes memory returndata) = target.call{value: value}(data) */\n      swap2\n      pop\n      swap2\n      pop\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5389:5440  verifyCallResult(success, returndata, errorMessage) */\n      tag_229\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5406:5413  success */\n      dup3\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5415:5425  returndata */\n      dup3\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5427:5439  errorMessage */\n      dup7\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5389:5405  verifyCallResult */\n      tag_230\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5389:5440  verifyCallResult(success, returndata, errorMessage) */\n      jump\t// in\n    tag_229:\n        /* \"@openzeppelin/contracts/utils/Address.sol\":5382:5440  return verifyCallResult(success, returndata, errorMessage) */\n      swap3\n      pop\n      pop\n      pop\n        /* \"@openzeppelin/contracts/utils/Address.sol\":4948:5447  function functionCallWithValue(... */\n      swap5\n      swap4\n      pop\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1175:1495  function isContract(address account) internal view returns (bool) {... */\n    tag_220:\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1235:1239  bool */\n      0x00\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1487:1488  0 */\n      dup1\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1465:1472  account */\n      dup3\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1465:1484  account.code.length */\n      0xffffffffffffffffffffffffffffffffffffffff\n      and\n      extcodesize\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1465:1488  account.code.length > 0 */\n      gt\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1458:1488  return account.code.length > 0 */\n      swap1\n      pop\n        /* \"@openzeppelin/contracts/utils/Address.sol\":1175:1495  function isContract(address account) internal view returns (bool) {... */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"@openzeppelin/contracts/utils/Address.sol\":7561:8303  function verifyCallResult(... */\n    tag_230:\n        /* \"@openzeppelin/contracts/utils/Address.sol\":7707:7719  bytes memory */\n      0x60\n        /* \"@openzeppelin/contracts/utils/Address.sol\":7735:7742  success */\n      dup4\n        /* \"@openzeppelin/contracts/utils/Address.sol\":7731:8297  if (success) {... */\n      iszero\n      tag_233\n      jumpi\n        /* \"@openzeppelin/contracts/utils/Address.sol\":7765:7775  returndata */\n      dup3\n        /* \"@openzeppelin/contracts/utils/Address.sol\":7758:7775  return returndata */\n      swap1\n      pop\n      jump(tag_232)\n        /* \"@openzeppelin/contracts/utils/Address.sol\":7731:8297  if (success) {... */\n    tag_233:\n        /* \"@openzeppelin/contracts/utils/Address.sol\":7896:7897  0 */\n      0x00\n        /* \"@openzeppelin/contracts/utils/Address.sol\":7876:7886  returndata */\n      dup4\n        /* \"@openzeppelin/contracts/utils/Address.sol\":7876:7893  returndata.length */\n      mload\n        /* \"@openzeppelin/contracts/utils/Address.sol\":7876:7897  returndata.length > 0 */\n      gt\n        /* \"@openzeppelin/contracts/utils/Address.sol\":7872:8287  if (returndata.length > 0) {... */\n      iszero\n      tag_235\n      jumpi\n        /* \"@openzeppelin/contracts/utils/Address.sol\":8120:8130  returndata */\n      dup3\n        /* \"@openzeppelin/contracts/utils/Address.sol\":8114:8131  mload(returndata) */\n      mload\n        /* \"@openzeppelin/contracts/utils/Address.sol\":8180:8195  returndata_size */\n      dup1\n        /* \"@openzeppelin/contracts/utils/Address.sol\":8167:8177  returndata */\n      dup5\n        /* \"@openzeppelin/contracts/utils/Address.sol\":8163:8165  32 */\n      0x20\n        /* \"@openzeppelin/contracts/utils/Address.sol\":8159:8178  add(32, returndata) */\n      add\n        /* \"@openzeppelin/contracts/utils/Address.sol\":8152:8196  revert(add(32, returndata), returndata_size) */\n      revert\n        /* \"@openzeppelin/contracts/utils/Address.sol\":8069:8214  {... */\n    tag_235:\n        /* \"@openzeppelin/contracts/utils/Address.sol\":8259:8271  errorMessage */\n      dup2\n        /* \"@openzeppelin/contracts/utils/Address.sol\":8252:8272  revert(errorMessage) */\n      mload(0x40)\n      0x08c379a000000000000000000000000000000000000000000000000000000000\n      dup2\n      mstore\n      0x04\n      add\n      tag_237\n      swap2\n      swap1\n      tag_238\n      jump\t// in\n    tag_237:\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      revert\n        /* \"@openzeppelin/contracts/utils/Address.sol\":7561:8303  function verifyCallResult(... */\n    tag_232:\n      swap4\n      swap3\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":7:350   */\n    tag_240:\n        /* \"#utility.yul\":84:89   */\n      0x00\n        /* \"#utility.yul\":109:174   */\n      tag_242\n        /* \"#utility.yul\":125:173   */\n      tag_243\n        /* \"#utility.yul\":166:172   */\n      dup5\n        /* \"#utility.yul\":125:173   */\n      tag_244\n      jump\t// in\n    tag_243:\n        /* \"#utility.yul\":109:174   */\n      tag_245\n      jump\t// in\n    tag_242:\n        /* \"#utility.yul\":100:174   */\n      swap1\n      pop\n        /* \"#utility.yul\":197:203   */\n      dup3\n        /* \"#utility.yul\":190:195   */\n      dup2\n        /* \"#utility.yul\":183:204   */\n      mstore\n        /* \"#utility.yul\":235:239   */\n      0x20\n        /* \"#utility.yul\":228:233   */\n      dup2\n        /* \"#utility.yul\":224:240   */\n      add\n        /* \"#utility.yul\":273:276   */\n      dup5\n        /* \"#utility.yul\":264:270   */\n      dup5\n        /* \"#utility.yul\":259:262   */\n      dup5\n        /* \"#utility.yul\":255:271   */\n      add\n        /* \"#utility.yul\":252:277   */\n      gt\n        /* \"#utility.yul\":249:251   */\n      iszero\n      tag_246\n      jumpi\n        /* \"#utility.yul\":290:291   */\n      0x00\n        /* \"#utility.yul\":287:288   */\n      dup1\n        /* \"#utility.yul\":280:292   */\n      revert\n        /* \"#utility.yul\":249:251   */\n    tag_246:\n        /* \"#utility.yul\":303:344   */\n      tag_247\n        /* \"#utility.yul\":337:343   */\n      dup5\n        /* \"#utility.yul\":332:335   */\n      dup3\n        /* \"#utility.yul\":327:330   */\n      dup6\n        /* \"#utility.yul\":303:344   */\n      tag_248\n      jump\t// in\n    tag_247:\n        /* \"#utility.yul\":90:350   */\n      pop\n      swap4\n      swap3\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":356:495   */\n    tag_249:\n        /* \"#utility.yul\":402:407   */\n      0x00\n        /* \"#utility.yul\":440:446   */\n      dup2\n        /* \"#utility.yul\":427:447   */\n      calldataload\n        /* \"#utility.yul\":418:447   */\n      swap1\n      pop\n        /* \"#utility.yul\":456:489   */\n      tag_251\n        /* \"#utility.yul\":483:488   */\n      dup2\n        /* \"#utility.yul\":456:489   */\n      tag_252\n      jump\t// in\n    tag_251:\n        /* \"#utility.yul\":408:495   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":501:656   */\n    tag_253:\n        /* \"#utility.yul\":555:560   */\n      0x00\n        /* \"#utility.yul\":593:599   */\n      dup2\n        /* \"#utility.yul\":580:600   */\n      calldataload\n        /* \"#utility.yul\":571:600   */\n      swap1\n      pop\n        /* \"#utility.yul\":609:650   */\n      tag_255\n        /* \"#utility.yul\":644:649   */\n      dup2\n        /* \"#utility.yul\":609:650   */\n      tag_256\n      jump\t// in\n    tag_255:\n        /* \"#utility.yul\":561:656   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":662:821   */\n    tag_257:\n        /* \"#utility.yul\":727:732   */\n      0x00\n        /* \"#utility.yul\":758:764   */\n      dup2\n        /* \"#utility.yul\":752:765   */\n      mload\n        /* \"#utility.yul\":743:765   */\n      swap1\n      pop\n        /* \"#utility.yul\":774:815   */\n      tag_259\n        /* \"#utility.yul\":809:814   */\n      dup2\n        /* \"#utility.yul\":774:815   */\n      tag_256\n      jump\t// in\n    tag_259:\n        /* \"#utility.yul\":733:821   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":827:964   */\n    tag_260:\n        /* \"#utility.yul\":881:886   */\n      0x00\n        /* \"#utility.yul\":912:918   */\n      dup2\n        /* \"#utility.yul\":906:919   */\n      mload\n        /* \"#utility.yul\":897:919   */\n      swap1\n      pop\n        /* \"#utility.yul\":928:958   */\n      tag_262\n        /* \"#utility.yul\":952:957   */\n      dup2\n        /* \"#utility.yul\":928:958   */\n      tag_263\n      jump\t// in\n    tag_262:\n        /* \"#utility.yul\":887:964   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":983:1254   */\n    tag_264:\n        /* \"#utility.yul\":1038:1043   */\n      0x00\n        /* \"#utility.yul\":1087:1090   */\n      dup3\n        /* \"#utility.yul\":1080:1084   */\n      0x1f\n        /* \"#utility.yul\":1072:1078   */\n      dup4\n        /* \"#utility.yul\":1068:1085   */\n      add\n        /* \"#utility.yul\":1064:1091   */\n      slt\n        /* \"#utility.yul\":1054:1056   */\n      tag_266\n      jumpi\n        /* \"#utility.yul\":1105:1106   */\n      0x00\n        /* \"#utility.yul\":1102:1103   */\n      dup1\n        /* \"#utility.yul\":1095:1107   */\n      revert\n        /* \"#utility.yul\":1054:1056   */\n    tag_266:\n        /* \"#utility.yul\":1145:1151   */\n      dup2\n        /* \"#utility.yul\":1132:1152   */\n      calldataload\n        /* \"#utility.yul\":1170:1248   */\n      tag_267\n        /* \"#utility.yul\":1244:1247   */\n      dup5\n        /* \"#utility.yul\":1236:1242   */\n      dup3\n        /* \"#utility.yul\":1229:1233   */\n      0x20\n        /* \"#utility.yul\":1221:1227   */\n      dup7\n        /* \"#utility.yul\":1217:1234   */\n      add\n        /* \"#utility.yul\":1170:1248   */\n      tag_240\n      jump\t// in\n    tag_267:\n        /* \"#utility.yul\":1161:1248   */\n      swap2\n      pop\n        /* \"#utility.yul\":1044:1254   */\n      pop\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":1301:2828   */\n    tag_268:\n        /* \"#utility.yul\":1379:1384   */\n      0x00\n        /* \"#utility.yul\":1423:1429   */\n      0x0100\n        /* \"#utility.yul\":1411:1420   */\n      dup3\n        /* \"#utility.yul\":1406:1409   */\n      dup5\n        /* \"#utility.yul\":1402:1421   */\n      sub\n        /* \"#utility.yul\":1398:1430   */\n      slt\n        /* \"#utility.yul\":1395:1397   */\n      iszero\n      tag_270\n      jumpi\n        /* \"#utility.yul\":1443:1444   */\n      0x00\n        /* \"#utility.yul\":1440:1441   */\n      dup1\n        /* \"#utility.yul\":1433:1445   */\n      revert\n        /* \"#utility.yul\":1395:1397   */\n    tag_270:\n        /* \"#utility.yul\":1465:1488   */\n      tag_271\n        /* \"#utility.yul\":1481:1487   */\n      0x0100\n        /* \"#utility.yul\":1465:1488   */\n      tag_245\n      jump\t// in\n    tag_271:\n        /* \"#utility.yul\":1456:1488   */\n      swap1\n      pop\n        /* \"#utility.yul\":1546:1547   */\n      0x00\n        /* \"#utility.yul\":1586:1635   */\n      tag_272\n        /* \"#utility.yul\":1631:1634   */\n      dup5\n        /* \"#utility.yul\":1622:1628   */\n      dup3\n        /* \"#utility.yul\":1611:1620   */\n      dup6\n        /* \"#utility.yul\":1607:1629   */\n      add\n        /* \"#utility.yul\":1586:1635   */\n      tag_273\n      jump\t// in\n    tag_272:\n        /* \"#utility.yul\":1579:1583   */\n      0x00\n        /* \"#utility.yul\":1572:1577   */\n      dup4\n        /* \"#utility.yul\":1568:1584   */\n      add\n        /* \"#utility.yul\":1561:1636   */\n      mstore\n        /* \"#utility.yul\":1498:1647   */\n      pop\n        /* \"#utility.yul\":1711:1713   */\n      0x20\n        /* \"#utility.yul\":1752:1801   */\n      tag_274\n        /* \"#utility.yul\":1797:1800   */\n      dup5\n        /* \"#utility.yul\":1788:1794   */\n      dup3\n        /* \"#utility.yul\":1777:1786   */\n      dup6\n        /* \"#utility.yul\":1773:1795   */\n      add\n        /* \"#utility.yul\":1752:1801   */\n      tag_249\n      jump\t// in\n    tag_274:\n        /* \"#utility.yul\":1745:1749   */\n      0x20\n        /* \"#utility.yul\":1738:1743   */\n      dup4\n        /* \"#utility.yul\":1734:1750   */\n      add\n        /* \"#utility.yul\":1727:1802   */\n      mstore\n        /* \"#utility.yul\":1657:1813   */\n      pop\n        /* \"#utility.yul\":1875:1877   */\n      0x40\n        /* \"#utility.yul\":1916:1965   */\n      tag_275\n        /* \"#utility.yul\":1961:1964   */\n      dup5\n        /* \"#utility.yul\":1952:1958   */\n      dup3\n        /* \"#utility.yul\":1941:1950   */\n      dup6\n        /* \"#utility.yul\":1937:1959   */\n      add\n        /* \"#utility.yul\":1916:1965   */\n      tag_249\n      jump\t// in\n    tag_275:\n        /* \"#utility.yul\":1909:1913   */\n      0x40\n        /* \"#utility.yul\":1902:1907   */\n      dup4\n        /* \"#utility.yul\":1898:1914   */\n      add\n        /* \"#utility.yul\":1891:1966   */\n      mstore\n        /* \"#utility.yul\":1823:1977   */\n      pop\n        /* \"#utility.yul\":2042:2044   */\n      0x60\n        /* \"#utility.yul\":2083:2131   */\n      tag_276\n        /* \"#utility.yul\":2127:2130   */\n      dup5\n        /* \"#utility.yul\":2118:2124   */\n      dup3\n        /* \"#utility.yul\":2107:2116   */\n      dup6\n        /* \"#utility.yul\":2103:2125   */\n      add\n        /* \"#utility.yul\":2083:2131   */\n      tag_277\n      jump\t// in\n    tag_276:\n        /* \"#utility.yul\":2076:2080   */\n      0x60\n        /* \"#utility.yul\":2069:2074   */\n      dup4\n        /* \"#utility.yul\":2065:2081   */\n      add\n        /* \"#utility.yul\":2058:2132   */\n      mstore\n        /* \"#utility.yul\":1987:2143   */\n      pop\n        /* \"#utility.yul\":2207:2210   */\n      0x80\n        /* \"#utility.yul\":2249:2297   */\n      tag_278\n        /* \"#utility.yul\":2293:2296   */\n      dup5\n        /* \"#utility.yul\":2284:2290   */\n      dup3\n        /* \"#utility.yul\":2273:2282   */\n      dup6\n        /* \"#utility.yul\":2269:2291   */\n      add\n        /* \"#utility.yul\":2249:2297   */\n      tag_277\n      jump\t// in\n    tag_278:\n        /* \"#utility.yul\":2242:2246   */\n      0x80\n        /* \"#utility.yul\":2235:2240   */\n      dup4\n        /* \"#utility.yul\":2231:2247   */\n      add\n        /* \"#utility.yul\":2224:2298   */\n      mstore\n        /* \"#utility.yul\":2153:2309   */\n      pop\n        /* \"#utility.yul\":2373:2376   */\n      0xa0\n        /* \"#utility.yul\":2415:2463   */\n      tag_279\n        /* \"#utility.yul\":2459:2462   */\n      dup5\n        /* \"#utility.yul\":2450:2456   */\n      dup3\n        /* \"#utility.yul\":2439:2448   */\n      dup6\n        /* \"#utility.yul\":2435:2457   */\n      add\n        /* \"#utility.yul\":2415:2463   */\n      tag_277\n      jump\t// in\n    tag_279:\n        /* \"#utility.yul\":2408:2412   */\n      0xa0\n        /* \"#utility.yul\":2401:2406   */\n      dup4\n        /* \"#utility.yul\":2397:2413   */\n      add\n        /* \"#utility.yul\":2390:2464   */\n      mstore\n        /* \"#utility.yul\":2319:2475   */\n      pop\n        /* \"#utility.yul\":2532:2535   */\n      0xc0\n        /* \"#utility.yul\":2574:2631   */\n      tag_280\n        /* \"#utility.yul\":2627:2630   */\n      dup5\n        /* \"#utility.yul\":2618:2624   */\n      dup3\n        /* \"#utility.yul\":2607:2616   */\n      dup6\n        /* \"#utility.yul\":2603:2625   */\n      add\n        /* \"#utility.yul\":2574:2631   */\n      tag_253\n      jump\t// in\n    tag_280:\n        /* \"#utility.yul\":2567:2571   */\n      0xc0\n        /* \"#utility.yul\":2560:2565   */\n      dup4\n        /* \"#utility.yul\":2556:2572   */\n      add\n        /* \"#utility.yul\":2549:2632   */\n      mstore\n        /* \"#utility.yul\":2485:2643   */\n      pop\n        /* \"#utility.yul\":2718:2721   */\n      0xe0\n        /* \"#utility.yul\":2760:2809   */\n      tag_281\n        /* \"#utility.yul\":2805:2808   */\n      dup5\n        /* \"#utility.yul\":2796:2802   */\n      dup3\n        /* \"#utility.yul\":2785:2794   */\n      dup6\n        /* \"#utility.yul\":2781:2803   */\n      add\n        /* \"#utility.yul\":2760:2809   */\n      tag_249\n      jump\t// in\n    tag_281:\n        /* \"#utility.yul\":2753:2757   */\n      0xe0\n        /* \"#utility.yul\":2746:2751   */\n      dup4\n        /* \"#utility.yul\":2742:2758   */\n      add\n        /* \"#utility.yul\":2735:2810   */\n      mstore\n        /* \"#utility.yul\":2653:2821   */\n      pop\n        /* \"#utility.yul\":1385:2828   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":2834:2971   */\n    tag_277:\n        /* \"#utility.yul\":2879:2884   */\n      0x00\n        /* \"#utility.yul\":2917:2923   */\n      dup2\n        /* \"#utility.yul\":2904:2924   */\n      calldataload\n        /* \"#utility.yul\":2895:2924   */\n      swap1\n      pop\n        /* \"#utility.yul\":2933:2965   */\n      tag_283\n        /* \"#utility.yul\":2959:2964   */\n      dup2\n        /* \"#utility.yul\":2933:2965   */\n      tag_284\n      jump\t// in\n    tag_283:\n        /* \"#utility.yul\":2885:2971   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":2977:3116   */\n    tag_273:\n        /* \"#utility.yul\":3023:3028   */\n      0x00\n        /* \"#utility.yul\":3061:3067   */\n      dup2\n        /* \"#utility.yul\":3048:3068   */\n      calldataload\n        /* \"#utility.yul\":3039:3068   */\n      swap1\n      pop\n        /* \"#utility.yul\":3077:3110   */\n      tag_286\n        /* \"#utility.yul\":3104:3109   */\n      dup2\n        /* \"#utility.yul\":3077:3110   */\n      tag_287\n      jump\t// in\n    tag_286:\n        /* \"#utility.yul\":3029:3116   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":3122:3265   */\n    tag_288:\n        /* \"#utility.yul\":3179:3184   */\n      0x00\n        /* \"#utility.yul\":3210:3216   */\n      dup2\n        /* \"#utility.yul\":3204:3217   */\n      mload\n        /* \"#utility.yul\":3195:3217   */\n      swap1\n      pop\n        /* \"#utility.yul\":3226:3259   */\n      tag_290\n        /* \"#utility.yul\":3253:3258   */\n      dup2\n        /* \"#utility.yul\":3226:3259   */\n      tag_287\n      jump\t// in\n    tag_290:\n        /* \"#utility.yul\":3185:3265   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":3271:3533   */\n    tag_41:\n        /* \"#utility.yul\":3330:3336   */\n      0x00\n        /* \"#utility.yul\":3379:3381   */\n      0x20\n        /* \"#utility.yul\":3367:3376   */\n      dup3\n        /* \"#utility.yul\":3358:3365   */\n      dup5\n        /* \"#utility.yul\":3354:3377   */\n      sub\n        /* \"#utility.yul\":3350:3382   */\n      slt\n        /* \"#utility.yul\":3347:3349   */\n      iszero\n      tag_292\n      jumpi\n        /* \"#utility.yul\":3395:3396   */\n      0x00\n        /* \"#utility.yul\":3392:3393   */\n      dup1\n        /* \"#utility.yul\":3385:3397   */\n      revert\n        /* \"#utility.yul\":3347:3349   */\n    tag_292:\n        /* \"#utility.yul\":3438:3439   */\n      0x00\n        /* \"#utility.yul\":3463:3516   */\n      tag_293\n        /* \"#utility.yul\":3508:3515   */\n      dup5\n        /* \"#utility.yul\":3499:3505   */\n      dup3\n        /* \"#utility.yul\":3488:3497   */\n      dup6\n        /* \"#utility.yul\":3484:3506   */\n      add\n        /* \"#utility.yul\":3463:3516   */\n      tag_249\n      jump\t// in\n    tag_293:\n        /* \"#utility.yul\":3453:3516   */\n      swap2\n      pop\n        /* \"#utility.yul\":3409:3526   */\n      pop\n        /* \"#utility.yul\":3337:3533   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":3539:3839   */\n    tag_160:\n        /* \"#utility.yul\":3617:3623   */\n      0x00\n        /* \"#utility.yul\":3666:3668   */\n      0x20\n        /* \"#utility.yul\":3654:3663   */\n      dup3\n        /* \"#utility.yul\":3645:3652   */\n      dup5\n        /* \"#utility.yul\":3641:3664   */\n      sub\n        /* \"#utility.yul\":3637:3669   */\n      slt\n        /* \"#utility.yul\":3634:3636   */\n      iszero\n      tag_295\n      jumpi\n        /* \"#utility.yul\":3682:3683   */\n      0x00\n        /* \"#utility.yul\":3679:3680   */\n      dup1\n        /* \"#utility.yul\":3672:3684   */\n      revert\n        /* \"#utility.yul\":3634:3636   */\n    tag_295:\n        /* \"#utility.yul\":3725:3726   */\n      0x00\n        /* \"#utility.yul\":3750:3822   */\n      tag_296\n        /* \"#utility.yul\":3814:3821   */\n      dup5\n        /* \"#utility.yul\":3805:3811   */\n      dup3\n        /* \"#utility.yul\":3794:3803   */\n      dup6\n        /* \"#utility.yul\":3790:3812   */\n      add\n        /* \"#utility.yul\":3750:3822   */\n      tag_257\n      jump\t// in\n    tag_296:\n        /* \"#utility.yul\":3740:3822   */\n      swap2\n      pop\n        /* \"#utility.yul\":3696:3832   */\n      pop\n        /* \"#utility.yul\":3624:3839   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":3845:4397   */\n    tag_66:\n        /* \"#utility.yul\":3922:3928   */\n      0x00\n        /* \"#utility.yul\":3930:3936   */\n      dup1\n        /* \"#utility.yul\":3938:3944   */\n      0x00\n        /* \"#utility.yul\":3987:3989   */\n      0x60\n        /* \"#utility.yul\":3975:3984   */\n      dup5\n        /* \"#utility.yul\":3966:3973   */\n      dup7\n        /* \"#utility.yul\":3962:3985   */\n      sub\n        /* \"#utility.yul\":3958:3990   */\n      slt\n        /* \"#utility.yul\":3955:3957   */\n      iszero\n      tag_298\n      jumpi\n        /* \"#utility.yul\":4003:4004   */\n      0x00\n        /* \"#utility.yul\":4000:4001   */\n      dup1\n        /* \"#utility.yul\":3993:4005   */\n      revert\n        /* \"#utility.yul\":3955:3957   */\n    tag_298:\n        /* \"#utility.yul\":4046:4047   */\n      0x00\n        /* \"#utility.yul\":4071:4124   */\n      tag_299\n        /* \"#utility.yul\":4116:4123   */\n      dup7\n        /* \"#utility.yul\":4107:4113   */\n      dup3\n        /* \"#utility.yul\":4096:4105   */\n      dup8\n        /* \"#utility.yul\":4092:4114   */\n      add\n        /* \"#utility.yul\":4071:4124   */\n      tag_249\n      jump\t// in\n    tag_299:\n        /* \"#utility.yul\":4061:4124   */\n      swap4\n      pop\n        /* \"#utility.yul\":4017:4134   */\n      pop\n        /* \"#utility.yul\":4173:4175   */\n      0x20\n        /* \"#utility.yul\":4199:4252   */\n      tag_300\n        /* \"#utility.yul\":4244:4251   */\n      dup7\n        /* \"#utility.yul\":4235:4241   */\n      dup3\n        /* \"#utility.yul\":4224:4233   */\n      dup8\n        /* \"#utility.yul\":4220:4242   */\n      add\n        /* \"#utility.yul\":4199:4252   */\n      tag_249\n      jump\t// in\n    tag_300:\n        /* \"#utility.yul\":4189:4252   */\n      swap3\n      pop\n        /* \"#utility.yul\":4144:4262   */\n      pop\n        /* \"#utility.yul\":4301:4303   */\n      0x40\n        /* \"#utility.yul\":4327:4380   */\n      tag_301\n        /* \"#utility.yul\":4372:4379   */\n      dup7\n        /* \"#utility.yul\":4363:4369   */\n      dup3\n        /* \"#utility.yul\":4352:4361   */\n      dup8\n        /* \"#utility.yul\":4348:4370   */\n      add\n        /* \"#utility.yul\":4327:4380   */\n      tag_273\n      jump\t// in\n    tag_301:\n        /* \"#utility.yul\":4317:4380   */\n      swap2\n      pop\n        /* \"#utility.yul\":4272:4390   */\n      pop\n        /* \"#utility.yul\":3945:4397   */\n      swap3\n      pop\n      swap3\n      pop\n      swap3\n      jump\t// out\n        /* \"#utility.yul\":4403:4808   */\n    tag_36:\n        /* \"#utility.yul\":4470:4476   */\n      0x00\n        /* \"#utility.yul\":4478:4484   */\n      dup1\n        /* \"#utility.yul\":4527:4529   */\n      0x40\n        /* \"#utility.yul\":4515:4524   */\n      dup4\n        /* \"#utility.yul\":4506:4513   */\n      dup6\n        /* \"#utility.yul\":4502:4525   */\n      sub\n        /* \"#utility.yul\":4498:4530   */\n      slt\n        /* \"#utility.yul\":4495:4497   */\n      iszero\n      tag_303\n      jumpi\n        /* \"#utility.yul\":4543:4544   */\n      0x00\n        /* \"#utility.yul\":4540:4541   */\n      dup1\n        /* \"#utility.yul\":4533:4545   */\n      revert\n        /* \"#utility.yul\":4495:4497   */\n    tag_303:\n        /* \"#utility.yul\":4586:4587   */\n      0x00\n        /* \"#utility.yul\":4611:4664   */\n      tag_304\n        /* \"#utility.yul\":4656:4663   */\n      dup6\n        /* \"#utility.yul\":4647:4653   */\n      dup3\n        /* \"#utility.yul\":4636:4645   */\n      dup7\n        /* \"#utility.yul\":4632:4654   */\n      add\n        /* \"#utility.yul\":4611:4664   */\n      tag_249\n      jump\t// in\n    tag_304:\n        /* \"#utility.yul\":4601:4664   */\n      swap3\n      pop\n        /* \"#utility.yul\":4557:4674   */\n      pop\n        /* \"#utility.yul\":4713:4715   */\n      0x20\n        /* \"#utility.yul\":4739:4791   */\n      tag_305\n        /* \"#utility.yul\":4783:4790   */\n      dup6\n        /* \"#utility.yul\":4774:4780   */\n      dup3\n        /* \"#utility.yul\":4763:4772   */\n      dup7\n        /* \"#utility.yul\":4759:4781   */\n      add\n        /* \"#utility.yul\":4739:4791   */\n      tag_277\n      jump\t// in\n    tag_305:\n        /* \"#utility.yul\":4729:4791   */\n      swap2\n      pop\n        /* \"#utility.yul\":4684:4801   */\n      pop\n        /* \"#utility.yul\":4485:4808   */\n      swap3\n      pop\n      swap3\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":4814:5092   */\n    tag_167:\n        /* \"#utility.yul\":4881:4887   */\n      0x00\n        /* \"#utility.yul\":4930:4932   */\n      0x20\n        /* \"#utility.yul\":4918:4927   */\n      dup3\n        /* \"#utility.yul\":4909:4916   */\n      dup5\n        /* \"#utility.yul\":4905:4928   */\n      sub\n        /* \"#utility.yul\":4901:4933   */\n      slt\n        /* \"#utility.yul\":4898:4900   */\n      iszero\n      tag_307\n      jumpi\n        /* \"#utility.yul\":4946:4947   */\n      0x00\n        /* \"#utility.yul\":4943:4944   */\n      dup1\n        /* \"#utility.yul\":4936:4948   */\n      revert\n        /* \"#utility.yul\":4898:4900   */\n    tag_307:\n        /* \"#utility.yul\":4989:4990   */\n      0x00\n        /* \"#utility.yul\":5014:5075   */\n      tag_308\n        /* \"#utility.yul\":5067:5074   */\n      dup5\n        /* \"#utility.yul\":5058:5064   */\n      dup3\n        /* \"#utility.yul\":5047:5056   */\n      dup6\n        /* \"#utility.yul\":5043:5065   */\n      add\n        /* \"#utility.yul\":5014:5075   */\n      tag_260\n      jump\t// in\n    tag_308:\n        /* \"#utility.yul\":5004:5075   */\n      swap2\n      pop\n        /* \"#utility.yul\":4960:5085   */\n      pop\n        /* \"#utility.yul\":4888:5092   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":5098:5419   */\n    tag_50:\n        /* \"#utility.yul\":5186:5192   */\n      0x00\n        /* \"#utility.yul\":5235:5238   */\n      0x0100\n        /* \"#utility.yul\":5223:5232   */\n      dup3\n        /* \"#utility.yul\":5214:5221   */\n      dup5\n        /* \"#utility.yul\":5210:5233   */\n      sub\n        /* \"#utility.yul\":5206:5239   */\n      slt\n        /* \"#utility.yul\":5203:5205   */\n      iszero\n      tag_310\n      jumpi\n        /* \"#utility.yul\":5252:5253   */\n      0x00\n        /* \"#utility.yul\":5249:5250   */\n      dup1\n        /* \"#utility.yul\":5242:5254   */\n      revert\n        /* \"#utility.yul\":5203:5205   */\n    tag_310:\n        /* \"#utility.yul\":5295:5296   */\n      0x00\n        /* \"#utility.yul\":5320:5402   */\n      tag_311\n        /* \"#utility.yul\":5394:5401   */\n      dup5\n        /* \"#utility.yul\":5385:5391   */\n      dup3\n        /* \"#utility.yul\":5374:5383   */\n      dup6\n        /* \"#utility.yul\":5370:5392   */\n      add\n        /* \"#utility.yul\":5320:5402   */\n      tag_268\n      jump\t// in\n    tag_311:\n        /* \"#utility.yul\":5310:5402   */\n      swap2\n      pop\n        /* \"#utility.yul\":5266:5412   */\n      pop\n        /* \"#utility.yul\":5193:5419   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":5425:5975   */\n    tag_29:\n        /* \"#utility.yul\":5501:5507   */\n      0x00\n        /* \"#utility.yul\":5509:5515   */\n      dup1\n        /* \"#utility.yul\":5517:5523   */\n      0x00\n        /* \"#utility.yul\":5566:5568   */\n      0x60\n        /* \"#utility.yul\":5554:5563   */\n      dup5\n        /* \"#utility.yul\":5545:5552   */\n      dup7\n        /* \"#utility.yul\":5541:5564   */\n      sub\n        /* \"#utility.yul\":5537:5569   */\n      slt\n        /* \"#utility.yul\":5534:5536   */\n      iszero\n      tag_313\n      jumpi\n        /* \"#utility.yul\":5582:5583   */\n      0x00\n        /* \"#utility.yul\":5579:5580   */\n      dup1\n        /* \"#utility.yul\":5572:5584   */\n      revert\n        /* \"#utility.yul\":5534:5536   */\n    tag_313:\n        /* \"#utility.yul\":5625:5626   */\n      0x00\n        /* \"#utility.yul\":5650:5702   */\n      tag_314\n        /* \"#utility.yul\":5694:5701   */\n      dup7\n        /* \"#utility.yul\":5685:5691   */\n      dup3\n        /* \"#utility.yul\":5674:5683   */\n      dup8\n        /* \"#utility.yul\":5670:5692   */\n      add\n        /* \"#utility.yul\":5650:5702   */\n      tag_277\n      jump\t// in\n    tag_314:\n        /* \"#utility.yul\":5640:5702   */\n      swap4\n      pop\n        /* \"#utility.yul\":5596:5712   */\n      pop\n        /* \"#utility.yul\":5751:5753   */\n      0x20\n        /* \"#utility.yul\":5777:5830   */\n      tag_315\n        /* \"#utility.yul\":5822:5829   */\n      dup7\n        /* \"#utility.yul\":5813:5819   */\n      dup3\n        /* \"#utility.yul\":5802:5811   */\n      dup8\n        /* \"#utility.yul\":5798:5820   */\n      add\n        /* \"#utility.yul\":5777:5830   */\n      tag_249\n      jump\t// in\n    tag_315:\n        /* \"#utility.yul\":5767:5830   */\n      swap3\n      pop\n        /* \"#utility.yul\":5722:5840   */\n      pop\n        /* \"#utility.yul\":5879:5881   */\n      0x40\n        /* \"#utility.yul\":5905:5958   */\n      tag_316\n        /* \"#utility.yul\":5950:5957   */\n      dup7\n        /* \"#utility.yul\":5941:5947   */\n      dup3\n        /* \"#utility.yul\":5930:5939   */\n      dup8\n        /* \"#utility.yul\":5926:5948   */\n      add\n        /* \"#utility.yul\":5905:5958   */\n      tag_249\n      jump\t// in\n    tag_316:\n        /* \"#utility.yul\":5895:5958   */\n      swap2\n      pop\n        /* \"#utility.yul\":5850:5968   */\n      pop\n        /* \"#utility.yul\":5524:5975   */\n      swap3\n      pop\n      swap3\n      pop\n      swap3\n      jump\t// out\n        /* \"#utility.yul\":5981:6531   */\n    tag_24:\n        /* \"#utility.yul\":6057:6063   */\n      0x00\n        /* \"#utility.yul\":6065:6071   */\n      dup1\n        /* \"#utility.yul\":6073:6079   */\n      0x00\n        /* \"#utility.yul\":6122:6124   */\n      0x60\n        /* \"#utility.yul\":6110:6119   */\n      dup5\n        /* \"#utility.yul\":6101:6108   */\n      dup7\n        /* \"#utility.yul\":6097:6120   */\n      sub\n        /* \"#utility.yul\":6093:6125   */\n      slt\n        /* \"#utility.yul\":6090:6092   */\n      iszero\n      tag_318\n      jumpi\n        /* \"#utility.yul\":6138:6139   */\n      0x00\n        /* \"#utility.yul\":6135:6136   */\n      dup1\n        /* \"#utility.yul\":6128:6140   */\n      revert\n        /* \"#utility.yul\":6090:6092   */\n    tag_318:\n        /* \"#utility.yul\":6181:6182   */\n      0x00\n        /* \"#utility.yul\":6206:6258   */\n      tag_319\n        /* \"#utility.yul\":6250:6257   */\n      dup7\n        /* \"#utility.yul\":6241:6247   */\n      dup3\n        /* \"#utility.yul\":6230:6239   */\n      dup8\n        /* \"#utility.yul\":6226:6248   */\n      add\n        /* \"#utility.yul\":6206:6258   */\n      tag_277\n      jump\t// in\n    tag_319:\n        /* \"#utility.yul\":6196:6258   */\n      swap4\n      pop\n        /* \"#utility.yul\":6152:6268   */\n      pop\n        /* \"#utility.yul\":6307:6309   */\n      0x20\n        /* \"#utility.yul\":6333:6386   */\n      tag_320\n        /* \"#utility.yul\":6378:6385   */\n      dup7\n        /* \"#utility.yul\":6369:6375   */\n      dup3\n        /* \"#utility.yul\":6358:6367   */\n      dup8\n        /* \"#utility.yul\":6354:6376   */\n      add\n        /* \"#utility.yul\":6333:6386   */\n      tag_249\n      jump\t// in\n    tag_320:\n        /* \"#utility.yul\":6323:6386   */\n      swap3\n      pop\n        /* \"#utility.yul\":6278:6396   */\n      pop\n        /* \"#utility.yul\":6435:6437   */\n      0x40\n        /* \"#utility.yul\":6461:6514   */\n      tag_321\n        /* \"#utility.yul\":6506:6513   */\n      dup7\n        /* \"#utility.yul\":6497:6503   */\n      dup3\n        /* \"#utility.yul\":6486:6495   */\n      dup8\n        /* \"#utility.yul\":6482:6504   */\n      add\n        /* \"#utility.yul\":6461:6514   */\n      tag_273\n      jump\t// in\n    tag_321:\n        /* \"#utility.yul\":6451:6514   */\n      swap2\n      pop\n        /* \"#utility.yul\":6406:6524   */\n      pop\n        /* \"#utility.yul\":6080:6531   */\n      swap3\n      pop\n      swap3\n      pop\n      swap3\n      jump\t// out\n        /* \"#utility.yul\":6537:7747   */\n    tag_62:\n        /* \"#utility.yul\":6658:6664   */\n      0x00\n        /* \"#utility.yul\":6666:6672   */\n      dup1\n        /* \"#utility.yul\":6674:6680   */\n      0x00\n        /* \"#utility.yul\":6682:6688   */\n      dup1\n        /* \"#utility.yul\":6690:6696   */\n      0x00\n        /* \"#utility.yul\":6698:6704   */\n      dup1\n        /* \"#utility.yul\":6747:6750   */\n      0xc0\n        /* \"#utility.yul\":6735:6744   */\n      dup8\n        /* \"#utility.yul\":6726:6733   */\n      dup10\n        /* \"#utility.yul\":6722:6745   */\n      sub\n        /* \"#utility.yul\":6718:6751   */\n      slt\n        /* \"#utility.yul\":6715:6717   */\n      iszero\n      tag_323\n      jumpi\n        /* \"#utility.yul\":6764:6765   */\n      0x00\n        /* \"#utility.yul\":6761:6762   */\n      dup1\n        /* \"#utility.yul\":6754:6766   */\n      revert\n        /* \"#utility.yul\":6715:6717   */\n    tag_323:\n        /* \"#utility.yul\":6807:6808   */\n      0x00\n        /* \"#utility.yul\":6832:6884   */\n      tag_324\n        /* \"#utility.yul\":6876:6883   */\n      dup10\n        /* \"#utility.yul\":6867:6873   */\n      dup3\n        /* \"#utility.yul\":6856:6865   */\n      dup11\n        /* \"#utility.yul\":6852:6874   */\n      add\n        /* \"#utility.yul\":6832:6884   */\n      tag_277\n      jump\t// in\n    tag_324:\n        /* \"#utility.yul\":6822:6884   */\n      swap7\n      pop\n        /* \"#utility.yul\":6778:6894   */\n      pop\n        /* \"#utility.yul\":6961:6963   */\n      0x20\n        /* \"#utility.yul\":6950:6959   */\n      dup8\n        /* \"#utility.yul\":6946:6964   */\n      add\n        /* \"#utility.yul\":6933:6965   */\n      calldataload\n        /* \"#utility.yul\":6992:7010   */\n      0xffffffffffffffff\n        /* \"#utility.yul\":6984:6990   */\n      dup2\n        /* \"#utility.yul\":6981:7011   */\n      gt\n        /* \"#utility.yul\":6978:6980   */\n      iszero\n      tag_325\n      jumpi\n        /* \"#utility.yul\":7024:7025   */\n      0x00\n        /* \"#utility.yul\":7021:7022   */\n      dup1\n        /* \"#utility.yul\":7014:7026   */\n      revert\n        /* \"#utility.yul\":6978:6980   */\n    tag_325:\n        /* \"#utility.yul\":7052:7114   */\n      tag_326\n        /* \"#utility.yul\":7106:7113   */\n      dup10\n        /* \"#utility.yul\":7097:7103   */\n      dup3\n        /* \"#utility.yul\":7086:7095   */\n      dup11\n        /* \"#utility.yul\":7082:7104   */\n      add\n        /* \"#utility.yul\":7052:7114   */\n      tag_264\n      jump\t// in\n    tag_326:\n        /* \"#utility.yul\":7042:7114   */\n      swap6\n      pop\n        /* \"#utility.yul\":6904:7124   */\n      pop\n        /* \"#utility.yul\":7163:7165   */\n      0x40\n        /* \"#utility.yul\":7189:7242   */\n      tag_327\n        /* \"#utility.yul\":7234:7241   */\n      dup10\n        /* \"#utility.yul\":7225:7231   */\n      dup3\n        /* \"#utility.yul\":7214:7223   */\n      dup11\n        /* \"#utility.yul\":7210:7232   */\n      add\n        /* \"#utility.yul\":7189:7242   */\n      tag_273\n      jump\t// in\n    tag_327:\n        /* \"#utility.yul\":7179:7242   */\n      swap5\n      pop\n        /* \"#utility.yul\":7134:7252   */\n      pop\n        /* \"#utility.yul\":7291:7293   */\n      0x60\n        /* \"#utility.yul\":7317:7370   */\n      tag_328\n        /* \"#utility.yul\":7362:7369   */\n      dup10\n        /* \"#utility.yul\":7353:7359   */\n      dup3\n        /* \"#utility.yul\":7342:7351   */\n      dup11\n        /* \"#utility.yul\":7338:7360   */\n      add\n        /* \"#utility.yul\":7317:7370   */\n      tag_249\n      jump\t// in\n    tag_328:\n        /* \"#utility.yul\":7307:7370   */\n      swap4\n      pop\n        /* \"#utility.yul\":7262:7380   */\n      pop\n        /* \"#utility.yul\":7419:7422   */\n      0x80\n        /* \"#utility.yul\":7446:7499   */\n      tag_329\n        /* \"#utility.yul\":7491:7498   */\n      dup10\n        /* \"#utility.yul\":7482:7488   */\n      dup3\n        /* \"#utility.yul\":7471:7480   */\n      dup11\n        /* \"#utility.yul\":7467:7489   */\n      add\n        /* \"#utility.yul\":7446:7499   */\n      tag_273\n      jump\t// in\n    tag_329:\n        /* \"#utility.yul\":7436:7499   */\n      swap3\n      pop\n        /* \"#utility.yul\":7390:7509   */\n      pop\n        /* \"#utility.yul\":7576:7579   */\n      0xa0\n        /* \"#utility.yul\":7565:7574   */\n      dup8\n        /* \"#utility.yul\":7561:7580   */\n      add\n        /* \"#utility.yul\":7548:7581   */\n      calldataload\n        /* \"#utility.yul\":7608:7626   */\n      0xffffffffffffffff\n        /* \"#utility.yul\":7600:7606   */\n      dup2\n        /* \"#utility.yul\":7597:7627   */\n      gt\n        /* \"#utility.yul\":7594:7596   */\n      iszero\n      tag_330\n      jumpi\n        /* \"#utility.yul\":7640:7641   */\n      0x00\n        /* \"#utility.yul\":7637:7638   */\n      dup1\n        /* \"#utility.yul\":7630:7642   */\n      revert\n        /* \"#utility.yul\":7594:7596   */\n    tag_330:\n        /* \"#utility.yul\":7668:7730   */\n      tag_331\n        /* \"#utility.yul\":7722:7729   */\n      dup10\n        /* \"#utility.yul\":7713:7719   */\n      dup3\n        /* \"#utility.yul\":7702:7711   */\n      dup11\n        /* \"#utility.yul\":7698:7720   */\n      add\n        /* \"#utility.yul\":7668:7730   */\n      tag_264\n      jump\t// in\n    tag_331:\n        /* \"#utility.yul\":7658:7730   */\n      swap2\n      pop\n        /* \"#utility.yul\":7519:7740   */\n      pop\n        /* \"#utility.yul\":6705:7747   */\n      swap3\n      swap6\n      pop\n      swap3\n      swap6\n      pop\n      swap3\n      swap6\n      jump\t// out\n        /* \"#utility.yul\":7753:8015   */\n    tag_19:\n        /* \"#utility.yul\":7812:7818   */\n      0x00\n        /* \"#utility.yul\":7861:7863   */\n      0x20\n        /* \"#utility.yul\":7849:7858   */\n      dup3\n        /* \"#utility.yul\":7840:7847   */\n      dup5\n        /* \"#utility.yul\":7836:7859   */\n      sub\n        /* \"#utility.yul\":7832:7864   */\n      slt\n        /* \"#utility.yul\":7829:7831   */\n      iszero\n      tag_333\n      jumpi\n        /* \"#utility.yul\":7877:7878   */\n      0x00\n        /* \"#utility.yul\":7874:7875   */\n      dup1\n        /* \"#utility.yul\":7867:7879   */\n      revert\n        /* \"#utility.yul\":7829:7831   */\n    tag_333:\n        /* \"#utility.yul\":7920:7921   */\n      0x00\n        /* \"#utility.yul\":7945:7998   */\n      tag_334\n        /* \"#utility.yul\":7990:7997   */\n      dup5\n        /* \"#utility.yul\":7981:7987   */\n      dup3\n        /* \"#utility.yul\":7970:7979   */\n      dup6\n        /* \"#utility.yul\":7966:7988   */\n      add\n        /* \"#utility.yul\":7945:7998   */\n      tag_273\n      jump\t// in\n    tag_334:\n        /* \"#utility.yul\":7935:7998   */\n      swap2\n      pop\n        /* \"#utility.yul\":7891:8008   */\n      pop\n        /* \"#utility.yul\":7819:8015   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":8021:8305   */\n    tag_197:\n        /* \"#utility.yul\":8091:8097   */\n      0x00\n        /* \"#utility.yul\":8140:8142   */\n      0x20\n        /* \"#utility.yul\":8128:8137   */\n      dup3\n        /* \"#utility.yul\":8119:8126   */\n      dup5\n        /* \"#utility.yul\":8115:8138   */\n      sub\n        /* \"#utility.yul\":8111:8143   */\n      slt\n        /* \"#utility.yul\":8108:8110   */\n      iszero\n      tag_336\n      jumpi\n        /* \"#utility.yul\":8156:8157   */\n      0x00\n        /* \"#utility.yul\":8153:8154   */\n      dup1\n        /* \"#utility.yul\":8146:8158   */\n      revert\n        /* \"#utility.yul\":8108:8110   */\n    tag_336:\n        /* \"#utility.yul\":8199:8200   */\n      0x00\n        /* \"#utility.yul\":8224:8288   */\n      tag_337\n        /* \"#utility.yul\":8280:8287   */\n      dup5\n        /* \"#utility.yul\":8271:8277   */\n      dup3\n        /* \"#utility.yul\":8260:8269   */\n      dup6\n        /* \"#utility.yul\":8256:8278   */\n      add\n        /* \"#utility.yul\":8224:8288   */\n      tag_288\n      jump\t// in\n    tag_337:\n        /* \"#utility.yul\":8214:8288   */\n      swap2\n      pop\n        /* \"#utility.yul\":8170:8298   */\n      pop\n        /* \"#utility.yul\":8098:8305   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":8311:8751   */\n    tag_88:\n        /* \"#utility.yul\":8390:8396   */\n      0x00\n        /* \"#utility.yul\":8398:8404   */\n      dup1\n        /* \"#utility.yul\":8447:8449   */\n      0x40\n        /* \"#utility.yul\":8435:8444   */\n      dup4\n        /* \"#utility.yul\":8426:8433   */\n      dup6\n        /* \"#utility.yul\":8422:8445   */\n      sub\n        /* \"#utility.yul\":8418:8450   */\n      slt\n        /* \"#utility.yul\":8415:8417   */\n      iszero\n      tag_339\n      jumpi\n        /* \"#utility.yul\":8463:8464   */\n      0x00\n        /* \"#utility.yul\":8460:8461   */\n      dup1\n        /* \"#utility.yul\":8453:8465   */\n      revert\n        /* \"#utility.yul\":8415:8417   */\n    tag_339:\n        /* \"#utility.yul\":8506:8507   */\n      0x00\n        /* \"#utility.yul\":8531:8595   */\n      tag_340\n        /* \"#utility.yul\":8587:8594   */\n      dup6\n        /* \"#utility.yul\":8578:8584   */\n      dup3\n        /* \"#utility.yul\":8567:8576   */\n      dup7\n        /* \"#utility.yul\":8563:8585   */\n      add\n        /* \"#utility.yul\":8531:8595   */\n      tag_288\n      jump\t// in\n    tag_340:\n        /* \"#utility.yul\":8521:8595   */\n      swap3\n      pop\n        /* \"#utility.yul\":8477:8605   */\n      pop\n        /* \"#utility.yul\":8644:8646   */\n      0x20\n        /* \"#utility.yul\":8670:8734   */\n      tag_341\n        /* \"#utility.yul\":8726:8733   */\n      dup6\n        /* \"#utility.yul\":8717:8723   */\n      dup3\n        /* \"#utility.yul\":8706:8715   */\n      dup7\n        /* \"#utility.yul\":8702:8724   */\n      add\n        /* \"#utility.yul\":8670:8734   */\n      tag_288\n      jump\t// in\n    tag_341:\n        /* \"#utility.yul\":8660:8734   */\n      swap2\n      pop\n        /* \"#utility.yul\":8615:8744   */\n      pop\n        /* \"#utility.yul\":8405:8751   */\n      swap3\n      pop\n      swap3\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":8757:8904   */\n    tag_342:\n        /* \"#utility.yul\":8852:8897   */\n      tag_344\n        /* \"#utility.yul\":8891:8896   */\n      dup2\n        /* \"#utility.yul\":8852:8897   */\n      tag_345\n      jump\t// in\n    tag_344:\n        /* \"#utility.yul\":8847:8850   */\n      dup3\n        /* \"#utility.yul\":8840:8898   */\n      mstore\n        /* \"#utility.yul\":8830:8904   */\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":8910:9052   */\n    tag_346:\n        /* \"#utility.yul\":9013:9045   */\n      tag_348\n        /* \"#utility.yul\":9039:9044   */\n      dup2\n        /* \"#utility.yul\":9013:9045   */\n      tag_349\n      jump\t// in\n    tag_348:\n        /* \"#utility.yul\":9008:9011   */\n      dup3\n        /* \"#utility.yul\":9001:9046   */\n      mstore\n        /* \"#utility.yul\":8991:9052   */\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":9058:9176   */\n    tag_350:\n        /* \"#utility.yul\":9145:9169   */\n      tag_352\n        /* \"#utility.yul\":9163:9168   */\n      dup2\n        /* \"#utility.yul\":9145:9169   */\n      tag_353\n      jump\t// in\n    tag_352:\n        /* \"#utility.yul\":9140:9143   */\n      dup3\n        /* \"#utility.yul\":9133:9170   */\n      mstore\n        /* \"#utility.yul\":9123:9176   */\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":9182:9339   */\n    tag_354:\n        /* \"#utility.yul\":9287:9332   */\n      tag_356\n        /* \"#utility.yul\":9307:9331   */\n      tag_357\n        /* \"#utility.yul\":9325:9330   */\n      dup3\n        /* \"#utility.yul\":9307:9331   */\n      tag_353\n      jump\t// in\n    tag_357:\n        /* \"#utility.yul\":9287:9332   */\n      tag_358\n      jump\t// in\n    tag_356:\n        /* \"#utility.yul\":9282:9285   */\n      dup3\n        /* \"#utility.yul\":9275:9333   */\n      mstore\n        /* \"#utility.yul\":9265:9339   */\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":9345:9454   */\n    tag_359:\n        /* \"#utility.yul\":9426:9447   */\n      tag_361\n        /* \"#utility.yul\":9441:9446   */\n      dup2\n        /* \"#utility.yul\":9426:9447   */\n      tag_362\n      jump\t// in\n    tag_361:\n        /* \"#utility.yul\":9421:9424   */\n      dup3\n        /* \"#utility.yul\":9414:9448   */\n      mstore\n        /* \"#utility.yul\":9404:9454   */\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":9460:9800   */\n    tag_363:\n        /* \"#utility.yul\":9536:9539   */\n      0x00\n        /* \"#utility.yul\":9564:9602   */\n      tag_365\n        /* \"#utility.yul\":9596:9601   */\n      dup3\n        /* \"#utility.yul\":9564:9602   */\n      tag_366\n      jump\t// in\n    tag_365:\n        /* \"#utility.yul\":9618:9678   */\n      tag_367\n        /* \"#utility.yul\":9671:9677   */\n      dup2\n        /* \"#utility.yul\":9666:9669   */\n      dup6\n        /* \"#utility.yul\":9618:9678   */\n      tag_368\n      jump\t// in\n    tag_367:\n        /* \"#utility.yul\":9611:9678   */\n      swap4\n      pop\n        /* \"#utility.yul\":9687:9739   */\n      tag_369\n        /* \"#utility.yul\":9732:9738   */\n      dup2\n        /* \"#utility.yul\":9727:9730   */\n      dup6\n        /* \"#utility.yul\":9720:9724   */\n      0x20\n        /* \"#utility.yul\":9713:9718   */\n      dup7\n        /* \"#utility.yul\":9709:9725   */\n      add\n        /* \"#utility.yul\":9687:9739   */\n      tag_370\n      jump\t// in\n    tag_369:\n        /* \"#utility.yul\":9764:9793   */\n      tag_371\n        /* \"#utility.yul\":9786:9792   */\n      dup2\n        /* \"#utility.yul\":9764:9793   */\n      tag_372\n      jump\t// in\n    tag_371:\n        /* \"#utility.yul\":9759:9762   */\n      dup5\n        /* \"#utility.yul\":9755:9794   */\n      add\n        /* \"#utility.yul\":9748:9794   */\n      swap2\n      pop\n        /* \"#utility.yul\":9540:9800   */\n      pop\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":9806:10166   */\n    tag_373:\n        /* \"#utility.yul\":9892:9895   */\n      0x00\n        /* \"#utility.yul\":9920:9958   */\n      tag_375\n        /* \"#utility.yul\":9952:9957   */\n      dup3\n        /* \"#utility.yul\":9920:9958   */\n      tag_366\n      jump\t// in\n    tag_375:\n        /* \"#utility.yul\":9974:10044   */\n      tag_376\n        /* \"#utility.yul\":10037:10043   */\n      dup2\n        /* \"#utility.yul\":10032:10035   */\n      dup6\n        /* \"#utility.yul\":9974:10044   */\n      tag_377\n      jump\t// in\n    tag_376:\n        /* \"#utility.yul\":9967:10044   */\n      swap4\n      pop\n        /* \"#utility.yul\":10053:10105   */\n      tag_378\n        /* \"#utility.yul\":10098:10104   */\n      dup2\n        /* \"#utility.yul\":10093:10096   */\n      dup6\n        /* \"#utility.yul\":10086:10090   */\n      0x20\n        /* \"#utility.yul\":10079:10084   */\n      dup7\n        /* \"#utility.yul\":10075:10091   */\n      add\n        /* \"#utility.yul\":10053:10105   */\n      tag_370\n      jump\t// in\n    tag_378:\n        /* \"#utility.yul\":10130:10159   */\n      tag_379\n        /* \"#utility.yul\":10152:10158   */\n      dup2\n        /* \"#utility.yul\":10130:10159   */\n      tag_372\n      jump\t// in\n    tag_379:\n        /* \"#utility.yul\":10125:10128   */\n      dup5\n        /* \"#utility.yul\":10121:10160   */\n      add\n        /* \"#utility.yul\":10114:10160   */\n      swap2\n      pop\n        /* \"#utility.yul\":9896:10166   */\n      pop\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":10172:10545   */\n    tag_380:\n        /* \"#utility.yul\":10276:10279   */\n      0x00\n        /* \"#utility.yul\":10304:10342   */\n      tag_382\n        /* \"#utility.yul\":10336:10341   */\n      dup3\n        /* \"#utility.yul\":10304:10342   */\n      tag_366\n      jump\t// in\n    tag_382:\n        /* \"#utility.yul\":10358:10446   */\n      tag_383\n        /* \"#utility.yul\":10439:10445   */\n      dup2\n        /* \"#utility.yul\":10434:10437   */\n      dup6\n        /* \"#utility.yul\":10358:10446   */\n      tag_384\n      jump\t// in\n    tag_383:\n        /* \"#utility.yul\":10351:10446   */\n      swap4\n      pop\n        /* \"#utility.yul\":10455:10507   */\n      tag_385\n        /* \"#utility.yul\":10500:10506   */\n      dup2\n        /* \"#utility.yul\":10495:10498   */\n      dup6\n        /* \"#utility.yul\":10488:10492   */\n      0x20\n        /* \"#utility.yul\":10481:10486   */\n      dup7\n        /* \"#utility.yul\":10477:10493   */\n      add\n        /* \"#utility.yul\":10455:10507   */\n      tag_370\n      jump\t// in\n    tag_385:\n        /* \"#utility.yul\":10532:10538   */\n      dup1\n        /* \"#utility.yul\":10527:10530   */\n      dup5\n        /* \"#utility.yul\":10523:10539   */\n      add\n        /* \"#utility.yul\":10516:10539   */\n      swap2\n      pop\n        /* \"#utility.yul\":10280:10545   */\n      pop\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":10551:10694   */\n    tag_386:\n        /* \"#utility.yul\":10644:10687   */\n      tag_388\n        /* \"#utility.yul\":10681:10686   */\n      dup2\n        /* \"#utility.yul\":10644:10687   */\n      tag_389\n      jump\t// in\n    tag_388:\n        /* \"#utility.yul\":10639:10642   */\n      dup3\n        /* \"#utility.yul\":10632:10688   */\n      mstore\n        /* \"#utility.yul\":10622:10694   */\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":10700:11064   */\n    tag_390:\n        /* \"#utility.yul\":10788:10791   */\n      0x00\n        /* \"#utility.yul\":10816:10855   */\n      tag_392\n        /* \"#utility.yul\":10849:10854   */\n      dup3\n        /* \"#utility.yul\":10816:10855   */\n      tag_393\n      jump\t// in\n    tag_392:\n        /* \"#utility.yul\":10871:10942   */\n      tag_394\n        /* \"#utility.yul\":10935:10941   */\n      dup2\n        /* \"#utility.yul\":10930:10933   */\n      dup6\n        /* \"#utility.yul\":10871:10942   */\n      tag_395\n      jump\t// in\n    tag_394:\n        /* \"#utility.yul\":10864:10942   */\n      swap4\n      pop\n        /* \"#utility.yul\":10951:11003   */\n      tag_396\n        /* \"#utility.yul\":10996:11002   */\n      dup2\n        /* \"#utility.yul\":10991:10994   */\n      dup6\n        /* \"#utility.yul\":10984:10988   */\n      0x20\n        /* \"#utility.yul\":10977:10982   */\n      dup7\n        /* \"#utility.yul\":10973:10989   */\n      add\n        /* \"#utility.yul\":10951:11003   */\n      tag_370\n      jump\t// in\n    tag_396:\n        /* \"#utility.yul\":11028:11057   */\n      tag_397\n        /* \"#utility.yul\":11050:11056   */\n      dup2\n        /* \"#utility.yul\":11028:11057   */\n      tag_372\n      jump\t// in\n    tag_397:\n        /* \"#utility.yul\":11023:11026   */\n      dup5\n        /* \"#utility.yul\":11019:11058   */\n      add\n        /* \"#utility.yul\":11012:11058   */\n      swap2\n      pop\n        /* \"#utility.yul\":10792:11064   */\n      pop\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":11070:11436   */\n    tag_398:\n        /* \"#utility.yul\":11212:11215   */\n      0x00\n        /* \"#utility.yul\":11233:11300   */\n      tag_400\n        /* \"#utility.yul\":11297:11299   */\n      0x22\n        /* \"#utility.yul\":11292:11295   */\n      dup4\n        /* \"#utility.yul\":11233:11300   */\n      tag_395\n      jump\t// in\n    tag_400:\n        /* \"#utility.yul\":11226:11300   */\n      swap2\n      pop\n        /* \"#utility.yul\":11309:11402   */\n      tag_401\n        /* \"#utility.yul\":11398:11401   */\n      dup3\n        /* \"#utility.yul\":11309:11402   */\n      tag_402\n      jump\t// in\n    tag_401:\n        /* \"#utility.yul\":11427:11429   */\n      0x40\n        /* \"#utility.yul\":11422:11425   */\n      dup3\n        /* \"#utility.yul\":11418:11430   */\n      add\n        /* \"#utility.yul\":11411:11430   */\n      swap1\n      pop\n        /* \"#utility.yul\":11216:11436   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":11442:11805   */\n    tag_403:\n        /* \"#utility.yul\":11583:11586   */\n      0x00\n        /* \"#utility.yul\":11604:11669   */\n      tag_405\n        /* \"#utility.yul\":11667:11668   */\n      0x02\n        /* \"#utility.yul\":11662:11665   */\n      dup4\n        /* \"#utility.yul\":11604:11669   */\n      tag_377\n      jump\t// in\n    tag_405:\n        /* \"#utility.yul\":11597:11669   */\n      swap2\n      pop\n        /* \"#utility.yul\":11678:11771   */\n      tag_406\n        /* \"#utility.yul\":11767:11770   */\n      dup3\n        /* \"#utility.yul\":11678:11771   */\n      tag_407\n      jump\t// in\n    tag_406:\n        /* \"#utility.yul\":11796:11798   */\n      0x20\n        /* \"#utility.yul\":11791:11794   */\n      dup3\n        /* \"#utility.yul\":11787:11799   */\n      add\n        /* \"#utility.yul\":11780:11799   */\n      swap1\n      pop\n        /* \"#utility.yul\":11587:11805   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":11811:12177   */\n    tag_408:\n        /* \"#utility.yul\":11953:11956   */\n      0x00\n        /* \"#utility.yul\":11974:12041   */\n      tag_410\n        /* \"#utility.yul\":12038:12040   */\n      0x26\n        /* \"#utility.yul\":12033:12036   */\n      dup4\n        /* \"#utility.yul\":11974:12041   */\n      tag_395\n      jump\t// in\n    tag_410:\n        /* \"#utility.yul\":11967:12041   */\n      swap2\n      pop\n        /* \"#utility.yul\":12050:12143   */\n      tag_411\n        /* \"#utility.yul\":12139:12142   */\n      dup3\n        /* \"#utility.yul\":12050:12143   */\n      tag_412\n      jump\t// in\n    tag_411:\n        /* \"#utility.yul\":12168:12170   */\n      0x40\n        /* \"#utility.yul\":12163:12166   */\n      dup3\n        /* \"#utility.yul\":12159:12171   */\n      add\n        /* \"#utility.yul\":12152:12171   */\n      swap1\n      pop\n        /* \"#utility.yul\":11957:12177   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":12183:12548   */\n    tag_413:\n        /* \"#utility.yul\":12325:12328   */\n      0x00\n        /* \"#utility.yul\":12346:12412   */\n      tag_415\n        /* \"#utility.yul\":12410:12411   */\n      0x08\n        /* \"#utility.yul\":12405:12408   */\n      dup4\n        /* \"#utility.yul\":12346:12412   */\n      tag_395\n      jump\t// in\n    tag_415:\n        /* \"#utility.yul\":12339:12412   */\n      swap2\n      pop\n        /* \"#utility.yul\":12421:12514   */\n      tag_416\n        /* \"#utility.yul\":12510:12513   */\n      dup3\n        /* \"#utility.yul\":12421:12514   */\n      tag_417\n      jump\t// in\n    tag_416:\n        /* \"#utility.yul\":12539:12541   */\n      0x20\n        /* \"#utility.yul\":12534:12537   */\n      dup3\n        /* \"#utility.yul\":12530:12542   */\n      add\n        /* \"#utility.yul\":12523:12542   */\n      swap1\n      pop\n        /* \"#utility.yul\":12329:12548   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":12554:12920   */\n    tag_418:\n        /* \"#utility.yul\":12696:12699   */\n      0x00\n        /* \"#utility.yul\":12717:12784   */\n      tag_420\n        /* \"#utility.yul\":12781:12783   */\n      0x1d\n        /* \"#utility.yul\":12776:12779   */\n      dup4\n        /* \"#utility.yul\":12717:12784   */\n      tag_395\n      jump\t// in\n    tag_420:\n        /* \"#utility.yul\":12710:12784   */\n      swap2\n      pop\n        /* \"#utility.yul\":12793:12886   */\n      tag_421\n        /* \"#utility.yul\":12882:12885   */\n      dup3\n        /* \"#utility.yul\":12793:12886   */\n      tag_422\n      jump\t// in\n    tag_421:\n        /* \"#utility.yul\":12911:12913   */\n      0x20\n        /* \"#utility.yul\":12906:12909   */\n      dup3\n        /* \"#utility.yul\":12902:12914   */\n      add\n        /* \"#utility.yul\":12895:12914   */\n      swap1\n      pop\n        /* \"#utility.yul\":12700:12920   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":12926:13292   */\n    tag_423:\n        /* \"#utility.yul\":13068:13071   */\n      0x00\n        /* \"#utility.yul\":13089:13156   */\n      tag_425\n        /* \"#utility.yul\":13153:13155   */\n      0x2a\n        /* \"#utility.yul\":13148:13151   */\n      dup4\n        /* \"#utility.yul\":13089:13156   */\n      tag_395\n      jump\t// in\n    tag_425:\n        /* \"#utility.yul\":13082:13156   */\n      swap2\n      pop\n        /* \"#utility.yul\":13165:13258   */\n      tag_426\n        /* \"#utility.yul\":13254:13257   */\n      dup3\n        /* \"#utility.yul\":13165:13258   */\n      tag_427\n      jump\t// in\n    tag_426:\n        /* \"#utility.yul\":13283:13285   */\n      0x40\n        /* \"#utility.yul\":13278:13281   */\n      dup3\n        /* \"#utility.yul\":13274:13286   */\n      add\n        /* \"#utility.yul\":13267:13286   */\n      swap1\n      pop\n        /* \"#utility.yul\":13072:13292   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":13298:13664   */\n    tag_428:\n        /* \"#utility.yul\":13440:13443   */\n      0x00\n        /* \"#utility.yul\":13461:13528   */\n      tag_430\n        /* \"#utility.yul\":13525:13527   */\n      0x36\n        /* \"#utility.yul\":13520:13523   */\n      dup4\n        /* \"#utility.yul\":13461:13528   */\n      tag_395\n      jump\t// in\n    tag_430:\n        /* \"#utility.yul\":13454:13528   */\n      swap2\n      pop\n        /* \"#utility.yul\":13537:13630   */\n      tag_431\n        /* \"#utility.yul\":13626:13629   */\n      dup3\n        /* \"#utility.yul\":13537:13630   */\n      tag_432\n      jump\t// in\n    tag_431:\n        /* \"#utility.yul\":13655:13657   */\n      0x40\n        /* \"#utility.yul\":13650:13653   */\n      dup3\n        /* \"#utility.yul\":13646:13658   */\n      add\n        /* \"#utility.yul\":13639:13658   */\n      swap1\n      pop\n        /* \"#utility.yul\":13444:13664   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":13742:14549   */\n    tag_433:\n        /* \"#utility.yul\":13861:13864   */\n      0x00\n        /* \"#utility.yul\":13897:13901   */\n      0x60\n        /* \"#utility.yul\":13892:13895   */\n      dup4\n        /* \"#utility.yul\":13888:13902   */\n      add\n        /* \"#utility.yul\":13993:13997   */\n      0x00\n        /* \"#utility.yul\":13986:13991   */\n      dup4\n        /* \"#utility.yul\":13982:13998   */\n      add\n        /* \"#utility.yul\":13976:13999   */\n      mload\n        /* \"#utility.yul\":14012:14075   */\n      tag_435\n        /* \"#utility.yul\":14069:14073   */\n      0x00\n        /* \"#utility.yul\":14064:14067   */\n      dup7\n        /* \"#utility.yul\":14060:14074   */\n      add\n        /* \"#utility.yul\":14046:14058   */\n      dup3\n        /* \"#utility.yul\":14012:14075   */\n      tag_436\n      jump\t// in\n    tag_435:\n        /* \"#utility.yul\":13912:14085   */\n      pop\n        /* \"#utility.yul\":14178:14182   */\n      0x20\n        /* \"#utility.yul\":14171:14176   */\n      dup4\n        /* \"#utility.yul\":14167:14183   */\n      add\n        /* \"#utility.yul\":14161:14184   */\n      mload\n        /* \"#utility.yul\":14197:14260   */\n      tag_437\n        /* \"#utility.yul\":14254:14258   */\n      0x20\n        /* \"#utility.yul\":14249:14252   */\n      dup7\n        /* \"#utility.yul\":14245:14259   */\n      add\n        /* \"#utility.yul\":14231:14243   */\n      dup3\n        /* \"#utility.yul\":14197:14260   */\n      tag_436\n      jump\t// in\n    tag_437:\n        /* \"#utility.yul\":14095:14270   */\n      pop\n        /* \"#utility.yul\":14361:14365   */\n      0x40\n        /* \"#utility.yul\":14354:14359   */\n      dup4\n        /* \"#utility.yul\":14350:14366   */\n      add\n        /* \"#utility.yul\":14344:14367   */\n      mload\n        /* \"#utility.yul\":14414:14417   */\n      dup5\n        /* \"#utility.yul\":14408:14412   */\n      dup3\n        /* \"#utility.yul\":14404:14418   */\n      sub\n        /* \"#utility.yul\":14397:14401   */\n      0x40\n        /* \"#utility.yul\":14392:14395   */\n      dup7\n        /* \"#utility.yul\":14388:14402   */\n      add\n        /* \"#utility.yul\":14381:14419   */\n      mstore\n        /* \"#utility.yul\":14440:14511   */\n      tag_438\n        /* \"#utility.yul\":14506:14510   */\n      dup3\n        /* \"#utility.yul\":14492:14504   */\n      dup3\n        /* \"#utility.yul\":14440:14511   */\n      tag_363\n      jump\t// in\n    tag_438:\n        /* \"#utility.yul\":14432:14511   */\n      swap2\n      pop\n        /* \"#utility.yul\":14280:14522   */\n      pop\n        /* \"#utility.yul\":14539:14543   */\n      dup1\n        /* \"#utility.yul\":14532:14543   */\n      swap2\n      pop\n        /* \"#utility.yul\":13866:14549   */\n      pop\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":14555:14670   */\n    tag_439:\n        /* \"#utility.yul\":14640:14663   */\n      tag_441\n        /* \"#utility.yul\":14657:14662   */\n      dup2\n        /* \"#utility.yul\":14640:14663   */\n      tag_442\n      jump\t// in\n    tag_441:\n        /* \"#utility.yul\":14635:14638   */\n      dup3\n        /* \"#utility.yul\":14628:14664   */\n      mstore\n        /* \"#utility.yul\":14618:14670   */\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":14676:14805   */\n    tag_443:\n        /* \"#utility.yul\":14762:14798   */\n      tag_445\n        /* \"#utility.yul\":14792:14797   */\n      dup2\n        /* \"#utility.yul\":14762:14798   */\n      tag_446\n      jump\t// in\n    tag_445:\n        /* \"#utility.yul\":14757:14760   */\n      dup3\n        /* \"#utility.yul\":14750:14799   */\n      mstore\n        /* \"#utility.yul\":14740:14805   */\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":14811:14919   */\n    tag_436:\n        /* \"#utility.yul\":14888:14912   */\n      tag_448\n        /* \"#utility.yul\":14906:14911   */\n      dup2\n        /* \"#utility.yul\":14888:14912   */\n      tag_449\n      jump\t// in\n    tag_448:\n        /* \"#utility.yul\":14883:14886   */\n      dup3\n        /* \"#utility.yul\":14876:14913   */\n      mstore\n        /* \"#utility.yul\":14866:14919   */\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":14925:15043   */\n    tag_450:\n        /* \"#utility.yul\":15012:15036   */\n      tag_452\n        /* \"#utility.yul\":15030:15035   */\n      dup2\n        /* \"#utility.yul\":15012:15036   */\n      tag_449\n      jump\t// in\n    tag_452:\n        /* \"#utility.yul\":15007:15010   */\n      dup3\n        /* \"#utility.yul\":15000:15037   */\n      mstore\n        /* \"#utility.yul\":14990:15043   */\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":15049:15305   */\n    tag_81:\n        /* \"#utility.yul\":15161:15164   */\n      0x00\n        /* \"#utility.yul\":15176:15251   */\n      tag_454\n        /* \"#utility.yul\":15247:15250   */\n      dup3\n        /* \"#utility.yul\":15238:15244   */\n      dup5\n        /* \"#utility.yul\":15176:15251   */\n      tag_354\n      jump\t// in\n    tag_454:\n        /* \"#utility.yul\":15276:15278   */\n      0x14\n        /* \"#utility.yul\":15271:15274   */\n      dup3\n        /* \"#utility.yul\":15267:15279   */\n      add\n        /* \"#utility.yul\":15260:15279   */\n      swap2\n      pop\n        /* \"#utility.yul\":15296:15299   */\n      dup2\n        /* \"#utility.yul\":15289:15299   */\n      swap1\n      pop\n        /* \"#utility.yul\":15165:15305   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":15311:15582   */\n    tag_225:\n        /* \"#utility.yul\":15441:15444   */\n      0x00\n        /* \"#utility.yul\":15463:15556   */\n      tag_456\n        /* \"#utility.yul\":15552:15555   */\n      dup3\n        /* \"#utility.yul\":15543:15549   */\n      dup5\n        /* \"#utility.yul\":15463:15556   */\n      tag_380\n      jump\t// in\n    tag_456:\n        /* \"#utility.yul\":15456:15556   */\n      swap2\n      pop\n        /* \"#utility.yul\":15573:15576   */\n      dup2\n        /* \"#utility.yul\":15566:15576   */\n      swap1\n      pop\n        /* \"#utility.yul\":15445:15582   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":15588:15810   */\n    tag_112:\n        /* \"#utility.yul\":15681:15685   */\n      0x00\n        /* \"#utility.yul\":15719:15721   */\n      0x20\n        /* \"#utility.yul\":15708:15717   */\n      dup3\n        /* \"#utility.yul\":15704:15722   */\n      add\n        /* \"#utility.yul\":15696:15722   */\n      swap1\n      pop\n        /* \"#utility.yul\":15732:15803   */\n      tag_458\n        /* \"#utility.yul\":15800:15801   */\n      0x00\n        /* \"#utility.yul\":15789:15798   */\n      dup4\n        /* \"#utility.yul\":15785:15802   */\n      add\n        /* \"#utility.yul\":15776:15782   */\n      dup5\n        /* \"#utility.yul\":15732:15803   */\n      tag_350\n      jump\t// in\n    tag_458:\n        /* \"#utility.yul\":15686:15810   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":15816:16070   */\n    tag_139:\n        /* \"#utility.yul\":15925:15929   */\n      0x00\n        /* \"#utility.yul\":15963:15965   */\n      0x20\n        /* \"#utility.yul\":15952:15961   */\n      dup3\n        /* \"#utility.yul\":15948:15966   */\n      add\n        /* \"#utility.yul\":15940:15966   */\n      swap1\n      pop\n        /* \"#utility.yul\":15976:16063   */\n      tag_460\n        /* \"#utility.yul\":16060:16061   */\n      0x00\n        /* \"#utility.yul\":16049:16058   */\n      dup4\n        /* \"#utility.yul\":16045:16062   */\n      add\n        /* \"#utility.yul\":16036:16042   */\n      dup5\n        /* \"#utility.yul\":15976:16063   */\n      tag_346\n      jump\t// in\n    tag_460:\n        /* \"#utility.yul\":15930:16070   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":16076:16408   */\n    tag_192:\n        /* \"#utility.yul\":16197:16201   */\n      0x00\n        /* \"#utility.yul\":16235:16237   */\n      0x40\n        /* \"#utility.yul\":16224:16233   */\n      dup3\n        /* \"#utility.yul\":16220:16238   */\n      add\n        /* \"#utility.yul\":16212:16238   */\n      swap1\n      pop\n        /* \"#utility.yul\":16248:16319   */\n      tag_462\n        /* \"#utility.yul\":16316:16317   */\n      0x00\n        /* \"#utility.yul\":16305:16314   */\n      dup4\n        /* \"#utility.yul\":16301:16318   */\n      add\n        /* \"#utility.yul\":16292:16298   */\n      dup6\n        /* \"#utility.yul\":16248:16319   */\n      tag_350\n      jump\t// in\n    tag_462:\n        /* \"#utility.yul\":16329:16401   */\n      tag_463\n        /* \"#utility.yul\":16397:16399   */\n      0x20\n        /* \"#utility.yul\":16386:16395   */\n      dup4\n        /* \"#utility.yul\":16382:16400   */\n      add\n        /* \"#utility.yul\":16373:16379   */\n      dup5\n        /* \"#utility.yul\":16329:16401   */\n      tag_350\n      jump\t// in\n    tag_463:\n        /* \"#utility.yul\":16202:16408   */\n      swap4\n      swap3\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":16414:16856   */\n    tag_187:\n        /* \"#utility.yul\":16563:16567   */\n      0x00\n        /* \"#utility.yul\":16601:16603   */\n      0x60\n        /* \"#utility.yul\":16590:16599   */\n      dup3\n        /* \"#utility.yul\":16586:16604   */\n      add\n        /* \"#utility.yul\":16578:16604   */\n      swap1\n      pop\n        /* \"#utility.yul\":16614:16685   */\n      tag_465\n        /* \"#utility.yul\":16682:16683   */\n      0x00\n        /* \"#utility.yul\":16671:16680   */\n      dup4\n        /* \"#utility.yul\":16667:16684   */\n      add\n        /* \"#utility.yul\":16658:16664   */\n      dup7\n        /* \"#utility.yul\":16614:16685   */\n      tag_350\n      jump\t// in\n    tag_465:\n        /* \"#utility.yul\":16695:16767   */\n      tag_466\n        /* \"#utility.yul\":16763:16765   */\n      0x20\n        /* \"#utility.yul\":16752:16761   */\n      dup4\n        /* \"#utility.yul\":16748:16766   */\n      add\n        /* \"#utility.yul\":16739:16745   */\n      dup6\n        /* \"#utility.yul\":16695:16767   */\n      tag_350\n      jump\t// in\n    tag_466:\n        /* \"#utility.yul\":16777:16849   */\n      tag_467\n        /* \"#utility.yul\":16845:16847   */\n      0x40\n        /* \"#utility.yul\":16834:16843   */\n      dup4\n        /* \"#utility.yul\":16830:16848   */\n      add\n        /* \"#utility.yul\":16821:16827   */\n      dup5\n        /* \"#utility.yul\":16777:16849   */\n      tag_450\n      jump\t// in\n    tag_467:\n        /* \"#utility.yul\":16568:16856   */\n      swap5\n      swap4\n      pop\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":16862:17190   */\n    tag_106:\n        /* \"#utility.yul\":16981:16985   */\n      0x00\n        /* \"#utility.yul\":17019:17021   */\n      0x40\n        /* \"#utility.yul\":17008:17017   */\n      dup3\n        /* \"#utility.yul\":17004:17022   */\n      add\n        /* \"#utility.yul\":16996:17022   */\n      swap1\n      pop\n        /* \"#utility.yul\":17032:17103   */\n      tag_469\n        /* \"#utility.yul\":17100:17101   */\n      0x00\n        /* \"#utility.yul\":17089:17098   */\n      dup4\n        /* \"#utility.yul\":17085:17102   */\n      add\n        /* \"#utility.yul\":17076:17082   */\n      dup6\n        /* \"#utility.yul\":17032:17103   */\n      tag_350\n      jump\t// in\n    tag_469:\n        /* \"#utility.yul\":17113:17183   */\n      tag_470\n        /* \"#utility.yul\":17179:17181   */\n      0x20\n        /* \"#utility.yul\":17168:17177   */\n      dup4\n        /* \"#utility.yul\":17164:17182   */\n      add\n        /* \"#utility.yul\":17155:17161   */\n      dup5\n        /* \"#utility.yul\":17113:17183   */\n      tag_439\n      jump\t// in\n    tag_470:\n        /* \"#utility.yul\":16986:17190   */\n      swap4\n      swap3\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":17196:17528   */\n    tag_162:\n        /* \"#utility.yul\":17317:17321   */\n      0x00\n        /* \"#utility.yul\":17355:17357   */\n      0x40\n        /* \"#utility.yul\":17344:17353   */\n      dup3\n        /* \"#utility.yul\":17340:17358   */\n      add\n        /* \"#utility.yul\":17332:17358   */\n      swap1\n      pop\n        /* \"#utility.yul\":17368:17439   */\n      tag_472\n        /* \"#utility.yul\":17436:17437   */\n      0x00\n        /* \"#utility.yul\":17425:17434   */\n      dup4\n        /* \"#utility.yul\":17421:17438   */\n      add\n        /* \"#utility.yul\":17412:17418   */\n      dup6\n        /* \"#utility.yul\":17368:17439   */\n      tag_350\n      jump\t// in\n    tag_472:\n        /* \"#utility.yul\":17449:17521   */\n      tag_473\n        /* \"#utility.yul\":17517:17519   */\n      0x20\n        /* \"#utility.yul\":17506:17515   */\n      dup4\n        /* \"#utility.yul\":17502:17520   */\n      add\n        /* \"#utility.yul\":17493:17499   */\n      dup5\n        /* \"#utility.yul\":17449:17521   */\n      tag_450\n      jump\t// in\n    tag_473:\n        /* \"#utility.yul\":17322:17528   */\n      swap4\n      swap3\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":17534:17744   */\n    tag_53:\n        /* \"#utility.yul\":17621:17625   */\n      0x00\n        /* \"#utility.yul\":17659:17661   */\n      0x20\n        /* \"#utility.yul\":17648:17657   */\n      dup3\n        /* \"#utility.yul\":17644:17662   */\n      add\n        /* \"#utility.yul\":17636:17662   */\n      swap1\n      pop\n        /* \"#utility.yul\":17672:17737   */\n      tag_475\n        /* \"#utility.yul\":17734:17735   */\n      0x00\n        /* \"#utility.yul\":17723:17732   */\n      dup4\n        /* \"#utility.yul\":17719:17736   */\n      add\n        /* \"#utility.yul\":17710:17716   */\n      dup5\n        /* \"#utility.yul\":17672:17737   */\n      tag_359\n      jump\t// in\n    tag_475:\n        /* \"#utility.yul\":17626:17744   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":17750:18063   */\n    tag_238:\n        /* \"#utility.yul\":17863:17867   */\n      0x00\n        /* \"#utility.yul\":17901:17903   */\n      0x20\n        /* \"#utility.yul\":17890:17899   */\n      dup3\n        /* \"#utility.yul\":17886:17904   */\n      add\n        /* \"#utility.yul\":17878:17904   */\n      swap1\n      pop\n        /* \"#utility.yul\":17950:17959   */\n      dup2\n        /* \"#utility.yul\":17944:17948   */\n      dup2\n        /* \"#utility.yul\":17940:17960   */\n      sub\n        /* \"#utility.yul\":17936:17937   */\n      0x00\n        /* \"#utility.yul\":17925:17934   */\n      dup4\n        /* \"#utility.yul\":17921:17938   */\n      add\n        /* \"#utility.yul\":17914:17961   */\n      mstore\n        /* \"#utility.yul\":17978:18056   */\n      tag_477\n        /* \"#utility.yul\":18051:18055   */\n      dup2\n        /* \"#utility.yul\":18042:18048   */\n      dup5\n        /* \"#utility.yul\":17978:18056   */\n      tag_390\n      jump\t// in\n    tag_477:\n        /* \"#utility.yul\":17970:18056   */\n      swap1\n      pop\n        /* \"#utility.yul\":17868:18063   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":18069:18488   */\n    tag_181:\n        /* \"#utility.yul\":18235:18239   */\n      0x00\n        /* \"#utility.yul\":18273:18275   */\n      0x20\n        /* \"#utility.yul\":18262:18271   */\n      dup3\n        /* \"#utility.yul\":18258:18276   */\n      add\n        /* \"#utility.yul\":18250:18276   */\n      swap1\n      pop\n        /* \"#utility.yul\":18322:18331   */\n      dup2\n        /* \"#utility.yul\":18316:18320   */\n      dup2\n        /* \"#utility.yul\":18312:18332   */\n      sub\n        /* \"#utility.yul\":18308:18309   */\n      0x00\n        /* \"#utility.yul\":18297:18306   */\n      dup4\n        /* \"#utility.yul\":18293:18310   */\n      add\n        /* \"#utility.yul\":18286:18333   */\n      mstore\n        /* \"#utility.yul\":18350:18481   */\n      tag_479\n        /* \"#utility.yul\":18476:18480   */\n      dup2\n        /* \"#utility.yul\":18350:18481   */\n      tag_398\n      jump\t// in\n    tag_479:\n        /* \"#utility.yul\":18342:18481   */\n      swap1\n      pop\n        /* \"#utility.yul\":18240:18488   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":18494:18913   */\n    tag_218:\n        /* \"#utility.yul\":18660:18664   */\n      0x00\n        /* \"#utility.yul\":18698:18700   */\n      0x20\n        /* \"#utility.yul\":18687:18696   */\n      dup3\n        /* \"#utility.yul\":18683:18701   */\n      add\n        /* \"#utility.yul\":18675:18701   */\n      swap1\n      pop\n        /* \"#utility.yul\":18747:18756   */\n      dup2\n        /* \"#utility.yul\":18741:18745   */\n      dup2\n        /* \"#utility.yul\":18737:18757   */\n      sub\n        /* \"#utility.yul\":18733:18734   */\n      0x00\n        /* \"#utility.yul\":18722:18731   */\n      dup4\n        /* \"#utility.yul\":18718:18735   */\n      add\n        /* \"#utility.yul\":18711:18758   */\n      mstore\n        /* \"#utility.yul\":18775:18906   */\n      tag_481\n        /* \"#utility.yul\":18901:18905   */\n      dup2\n        /* \"#utility.yul\":18775:18906   */\n      tag_408\n      jump\t// in\n    tag_481:\n        /* \"#utility.yul\":18767:18906   */\n      swap1\n      pop\n        /* \"#utility.yul\":18665:18913   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":18919:20014   */\n    tag_151:\n        /* \"#utility.yul\":19259:19263   */\n      0x00\n        /* \"#utility.yul\":19297:19300   */\n      0xe0\n        /* \"#utility.yul\":19286:19295   */\n      dup3\n        /* \"#utility.yul\":19282:19301   */\n      add\n        /* \"#utility.yul\":19274:19301   */\n      swap1\n      pop\n        /* \"#utility.yul\":19347:19356   */\n      dup2\n        /* \"#utility.yul\":19341:19345   */\n      dup2\n        /* \"#utility.yul\":19337:19357   */\n      sub\n        /* \"#utility.yul\":19333:19334   */\n      0x00\n        /* \"#utility.yul\":19322:19331   */\n      dup4\n        /* \"#utility.yul\":19318:19335   */\n      add\n        /* \"#utility.yul\":19311:19358   */\n      mstore\n        /* \"#utility.yul\":19375:19506   */\n      tag_483\n        /* \"#utility.yul\":19501:19505   */\n      dup2\n        /* \"#utility.yul\":19375:19506   */\n      tag_413\n      jump\t// in\n    tag_483:\n        /* \"#utility.yul\":19367:19506   */\n      swap1\n      pop\n        /* \"#utility.yul\":19516:19588   */\n      tag_484\n        /* \"#utility.yul\":19584:19586   */\n      0x20\n        /* \"#utility.yul\":19573:19582   */\n      dup4\n        /* \"#utility.yul\":19569:19587   */\n      add\n        /* \"#utility.yul\":19560:19566   */\n      dup10\n        /* \"#utility.yul\":19516:19588   */\n      tag_350\n      jump\t// in\n    tag_484:\n        /* \"#utility.yul\":19598:19670   */\n      tag_485\n        /* \"#utility.yul\":19666:19668   */\n      0x40\n        /* \"#utility.yul\":19655:19664   */\n      dup4\n        /* \"#utility.yul\":19651:19669   */\n      add\n        /* \"#utility.yul\":19642:19648   */\n      dup9\n        /* \"#utility.yul\":19598:19670   */\n      tag_350\n      jump\t// in\n    tag_485:\n        /* \"#utility.yul\":19680:19752   */\n      tag_486\n        /* \"#utility.yul\":19748:19750   */\n      0x60\n        /* \"#utility.yul\":19737:19746   */\n      dup4\n        /* \"#utility.yul\":19733:19751   */\n      add\n        /* \"#utility.yul\":19724:19730   */\n      dup8\n        /* \"#utility.yul\":19680:19752   */\n      tag_350\n      jump\t// in\n    tag_486:\n        /* \"#utility.yul\":19762:19843   */\n      tag_487\n        /* \"#utility.yul\":19838:19841   */\n      0x80\n        /* \"#utility.yul\":19827:19836   */\n      dup4\n        /* \"#utility.yul\":19823:19842   */\n      add\n        /* \"#utility.yul\":19814:19820   */\n      dup7\n        /* \"#utility.yul\":19762:19843   */\n      tag_342\n      jump\t// in\n    tag_487:\n        /* \"#utility.yul\":19853:19926   */\n      tag_488\n        /* \"#utility.yul\":19921:19924   */\n      0xa0\n        /* \"#utility.yul\":19910:19919   */\n      dup4\n        /* \"#utility.yul\":19906:19925   */\n      add\n        /* \"#utility.yul\":19897:19903   */\n      dup6\n        /* \"#utility.yul\":19853:19926   */\n      tag_450\n      jump\t// in\n    tag_488:\n        /* \"#utility.yul\":19936:20007   */\n      tag_489\n        /* \"#utility.yul\":20002:20005   */\n      0xc0\n        /* \"#utility.yul\":19991:20000   */\n      dup4\n        /* \"#utility.yul\":19987:20006   */\n      add\n        /* \"#utility.yul\":19978:19984   */\n      dup5\n        /* \"#utility.yul\":19936:20007   */\n      tag_439\n      jump\t// in\n    tag_489:\n        /* \"#utility.yul\":19264:20014   */\n      swap8\n      swap7\n      pop\n      pop\n      pop\n      pop\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":20020:20439   */\n    tag_223:\n        /* \"#utility.yul\":20186:20190   */\n      0x00\n        /* \"#utility.yul\":20224:20226   */\n      0x20\n        /* \"#utility.yul\":20213:20222   */\n      dup3\n        /* \"#utility.yul\":20209:20227   */\n      add\n        /* \"#utility.yul\":20201:20227   */\n      swap1\n      pop\n        /* \"#utility.yul\":20273:20282   */\n      dup2\n        /* \"#utility.yul\":20267:20271   */\n      dup2\n        /* \"#utility.yul\":20263:20283   */\n      sub\n        /* \"#utility.yul\":20259:20260   */\n      0x00\n        /* \"#utility.yul\":20248:20257   */\n      dup4\n        /* \"#utility.yul\":20244:20261   */\n      add\n        /* \"#utility.yul\":20237:20284   */\n      mstore\n        /* \"#utility.yul\":20301:20432   */\n      tag_491\n        /* \"#utility.yul\":20427:20431   */\n      dup2\n        /* \"#utility.yul\":20301:20432   */\n      tag_418\n      jump\t// in\n    tag_491:\n        /* \"#utility.yul\":20293:20432   */\n      swap1\n      pop\n        /* \"#utility.yul\":20191:20439   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":20445:20864   */\n    tag_211:\n        /* \"#utility.yul\":20611:20615   */\n      0x00\n        /* \"#utility.yul\":20649:20651   */\n      0x20\n        /* \"#utility.yul\":20638:20647   */\n      dup3\n        /* \"#utility.yul\":20634:20652   */\n      add\n        /* \"#utility.yul\":20626:20652   */\n      swap1\n      pop\n        /* \"#utility.yul\":20698:20707   */\n      dup2\n        /* \"#utility.yul\":20692:20696   */\n      dup2\n        /* \"#utility.yul\":20688:20708   */\n      sub\n        /* \"#utility.yul\":20684:20685   */\n      0x00\n        /* \"#utility.yul\":20673:20682   */\n      dup4\n        /* \"#utility.yul\":20669:20686   */\n      add\n        /* \"#utility.yul\":20662:20709   */\n      mstore\n        /* \"#utility.yul\":20726:20857   */\n      tag_493\n        /* \"#utility.yul\":20852:20856   */\n      dup2\n        /* \"#utility.yul\":20726:20857   */\n      tag_423\n      jump\t// in\n    tag_493:\n        /* \"#utility.yul\":20718:20857   */\n      swap1\n      pop\n        /* \"#utility.yul\":20616:20864   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":20870:21289   */\n    tag_200:\n        /* \"#utility.yul\":21036:21040   */\n      0x00\n        /* \"#utility.yul\":21074:21076   */\n      0x20\n        /* \"#utility.yul\":21063:21072   */\n      dup3\n        /* \"#utility.yul\":21059:21077   */\n      add\n        /* \"#utility.yul\":21051:21077   */\n      swap1\n      pop\n        /* \"#utility.yul\":21123:21132   */\n      dup2\n        /* \"#utility.yul\":21117:21121   */\n      dup2\n        /* \"#utility.yul\":21113:21133   */\n      sub\n        /* \"#utility.yul\":21109:21110   */\n      0x00\n        /* \"#utility.yul\":21098:21107   */\n      dup4\n        /* \"#utility.yul\":21094:21111   */\n      add\n        /* \"#utility.yul\":21087:21134   */\n      mstore\n        /* \"#utility.yul\":21151:21282   */\n      tag_495\n        /* \"#utility.yul\":21277:21281   */\n      dup2\n        /* \"#utility.yul\":21151:21282   */\n      tag_428\n      jump\t// in\n    tag_495:\n        /* \"#utility.yul\":21143:21282   */\n      swap1\n      pop\n        /* \"#utility.yul\":21041:21289   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":21295:21733   */\n    tag_78:\n        /* \"#utility.yul\":21442:21446   */\n      0x00\n        /* \"#utility.yul\":21480:21482   */\n      0x60\n        /* \"#utility.yul\":21469:21478   */\n      dup3\n        /* \"#utility.yul\":21465:21483   */\n      add\n        /* \"#utility.yul\":21457:21483   */\n      swap1\n      pop\n        /* \"#utility.yul\":21493:21562   */\n      tag_497\n        /* \"#utility.yul\":21559:21560   */\n      0x00\n        /* \"#utility.yul\":21548:21557   */\n      dup4\n        /* \"#utility.yul\":21544:21561   */\n      add\n        /* \"#utility.yul\":21535:21541   */\n      dup7\n        /* \"#utility.yul\":21493:21562   */\n      tag_439\n      jump\t// in\n    tag_497:\n        /* \"#utility.yul\":21572:21644   */\n      tag_498\n        /* \"#utility.yul\":21640:21642   */\n      0x20\n        /* \"#utility.yul\":21629:21638   */\n      dup4\n        /* \"#utility.yul\":21625:21643   */\n      add\n        /* \"#utility.yul\":21616:21622   */\n      dup6\n        /* \"#utility.yul\":21572:21644   */\n      tag_350\n      jump\t// in\n    tag_498:\n        /* \"#utility.yul\":21654:21726   */\n      tag_499\n        /* \"#utility.yul\":21722:21724   */\n      0x40\n        /* \"#utility.yul\":21711:21720   */\n      dup4\n        /* \"#utility.yul\":21707:21725   */\n      add\n        /* \"#utility.yul\":21698:21704   */\n      dup5\n        /* \"#utility.yul\":21654:21726   */\n      tag_450\n      jump\t// in\n    tag_499:\n        /* \"#utility.yul\":21447:21733   */\n      swap5\n      swap4\n      pop\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":21739:22844   */\n    tag_83:\n        /* \"#utility.yul\":22088:22092   */\n      0x00\n        /* \"#utility.yul\":22126:22129   */\n      0xa0\n        /* \"#utility.yul\":22115:22124   */\n      dup3\n        /* \"#utility.yul\":22111:22130   */\n      add\n        /* \"#utility.yul\":22103:22130   */\n      swap1\n      pop\n        /* \"#utility.yul\":22140:22209   */\n      tag_501\n        /* \"#utility.yul\":22206:22207   */\n      0x00\n        /* \"#utility.yul\":22195:22204   */\n      dup4\n        /* \"#utility.yul\":22191:22208   */\n      add\n        /* \"#utility.yul\":22182:22188   */\n      dup8\n        /* \"#utility.yul\":22140:22209   */\n      tag_439\n      jump\t// in\n    tag_501:\n        /* \"#utility.yul\":22219:22297   */\n      tag_502\n        /* \"#utility.yul\":22293:22295   */\n      0x20\n        /* \"#utility.yul\":22282:22291   */\n      dup4\n        /* \"#utility.yul\":22278:22296   */\n      add\n        /* \"#utility.yul\":22269:22275   */\n      dup7\n        /* \"#utility.yul\":22219:22297   */\n      tag_386\n      jump\t// in\n    tag_502:\n        /* \"#utility.yul\":22344:22353   */\n      dup2\n        /* \"#utility.yul\":22338:22342   */\n      dup2\n        /* \"#utility.yul\":22334:22354   */\n      sub\n        /* \"#utility.yul\":22329:22331   */\n      0x40\n        /* \"#utility.yul\":22318:22327   */\n      dup4\n        /* \"#utility.yul\":22314:22332   */\n      add\n        /* \"#utility.yul\":22307:22355   */\n      mstore\n        /* \"#utility.yul\":22372:22448   */\n      tag_503\n        /* \"#utility.yul\":22443:22447   */\n      dup2\n        /* \"#utility.yul\":22434:22440   */\n      dup6\n        /* \"#utility.yul\":22372:22448   */\n      tag_373\n      jump\t// in\n    tag_503:\n        /* \"#utility.yul\":22364:22448   */\n      swap1\n      pop\n        /* \"#utility.yul\":22495:22504   */\n      dup2\n        /* \"#utility.yul\":22489:22493   */\n      dup2\n        /* \"#utility.yul\":22485:22505   */\n      sub\n        /* \"#utility.yul\":22480:22482   */\n      0x60\n        /* \"#utility.yul\":22469:22478   */\n      dup4\n        /* \"#utility.yul\":22465:22483   */\n      add\n        /* \"#utility.yul\":22458:22506   */\n      mstore\n        /* \"#utility.yul\":22523:22653   */\n      tag_504\n        /* \"#utility.yul\":22648:22652   */\n      dup2\n        /* \"#utility.yul\":22523:22653   */\n      tag_403\n      jump\t// in\n    tag_504:\n        /* \"#utility.yul\":22515:22653   */\n      swap1\n      pop\n        /* \"#utility.yul\":22701:22710   */\n      dup2\n        /* \"#utility.yul\":22695:22699   */\n      dup2\n        /* \"#utility.yul\":22691:22711   */\n      sub\n        /* \"#utility.yul\":22685:22688   */\n      0x80\n        /* \"#utility.yul\":22674:22683   */\n      dup4\n        /* \"#utility.yul\":22670:22689   */\n      add\n        /* \"#utility.yul\":22663:22712   */\n      mstore\n        /* \"#utility.yul\":22729:22837   */\n      tag_505\n        /* \"#utility.yul\":22832:22836   */\n      dup2\n        /* \"#utility.yul\":22823:22829   */\n      dup5\n        /* \"#utility.yul\":22729:22837   */\n      tag_433\n      jump\t// in\n    tag_505:\n        /* \"#utility.yul\":22721:22837   */\n      swap1\n      pop\n        /* \"#utility.yul\":22093:22844   */\n      swap6\n      swap5\n      pop\n      pop\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":22850:24307   */\n    tag_146:\n        /* \"#utility.yul\":23265:23269   */\n      0x00\n        /* \"#utility.yul\":23303:23306   */\n      0x0120\n        /* \"#utility.yul\":23292:23301   */\n      dup3\n        /* \"#utility.yul\":23288:23307   */\n      add\n        /* \"#utility.yul\":23280:23307   */\n      swap1\n      pop\n        /* \"#utility.yul\":23317:23386   */\n      tag_507\n        /* \"#utility.yul\":23383:23384   */\n      0x00\n        /* \"#utility.yul\":23372:23381   */\n      dup4\n        /* \"#utility.yul\":23368:23385   */\n      add\n        /* \"#utility.yul\":23359:23365   */\n      dup13\n        /* \"#utility.yul\":23317:23386   */\n      tag_439\n      jump\t// in\n    tag_507:\n        /* \"#utility.yul\":23396:23467   */\n      tag_508\n        /* \"#utility.yul\":23463:23465   */\n      0x20\n        /* \"#utility.yul\":23452:23461   */\n      dup4\n        /* \"#utility.yul\":23448:23466   */\n      add\n        /* \"#utility.yul\":23439:23445   */\n      dup12\n        /* \"#utility.yul\":23396:23467   */\n      tag_443\n      jump\t// in\n    tag_508:\n        /* \"#utility.yul\":23477:23548   */\n      tag_509\n        /* \"#utility.yul\":23544:23546   */\n      0x40\n        /* \"#utility.yul\":23533:23542   */\n      dup4\n        /* \"#utility.yul\":23529:23547   */\n      add\n        /* \"#utility.yul\":23520:23526   */\n      dup11\n        /* \"#utility.yul\":23477:23548   */\n      tag_443\n      jump\t// in\n    tag_509:\n        /* \"#utility.yul\":23558:23646   */\n      tag_510\n        /* \"#utility.yul\":23642:23644   */\n      0x60\n        /* \"#utility.yul\":23631:23640   */\n      dup4\n        /* \"#utility.yul\":23627:23645   */\n      add\n        /* \"#utility.yul\":23618:23624   */\n      dup10\n        /* \"#utility.yul\":23558:23646   */\n      tag_346\n      jump\t// in\n    tag_510:\n        /* \"#utility.yul\":23656:23729   */\n      tag_511\n        /* \"#utility.yul\":23724:23727   */\n      0x80\n        /* \"#utility.yul\":23713:23722   */\n      dup4\n        /* \"#utility.yul\":23709:23728   */\n      add\n        /* \"#utility.yul\":23700:23706   */\n      dup9\n        /* \"#utility.yul\":23656:23729   */\n      tag_450\n      jump\t// in\n    tag_511:\n        /* \"#utility.yul\":23739:23812   */\n      tag_512\n        /* \"#utility.yul\":23807:23810   */\n      0xa0\n        /* \"#utility.yul\":23796:23805   */\n      dup4\n        /* \"#utility.yul\":23792:23811   */\n      add\n        /* \"#utility.yul\":23783:23789   */\n      dup8\n        /* \"#utility.yul\":23739:23812   */\n      tag_450\n      jump\t// in\n    tag_512:\n        /* \"#utility.yul\":23860:23869   */\n      dup2\n        /* \"#utility.yul\":23854:23858   */\n      dup2\n        /* \"#utility.yul\":23850:23870   */\n      sub\n        /* \"#utility.yul\":23844:23847   */\n      0xc0\n        /* \"#utility.yul\":23833:23842   */\n      dup4\n        /* \"#utility.yul\":23829:23848   */\n      add\n        /* \"#utility.yul\":23822:23871   */\n      mstore\n        /* \"#utility.yul\":23888:23996   */\n      tag_513\n        /* \"#utility.yul\":23991:23995   */\n      dup2\n        /* \"#utility.yul\":23982:23988   */\n      dup7\n        /* \"#utility.yul\":23888:23996   */\n      tag_433\n      jump\t// in\n    tag_513:\n        /* \"#utility.yul\":23880:23996   */\n      swap1\n      pop\n        /* \"#utility.yul\":24044:24053   */\n      dup2\n        /* \"#utility.yul\":24038:24042   */\n      dup2\n        /* \"#utility.yul\":24034:24054   */\n      sub\n        /* \"#utility.yul\":24028:24031   */\n      0xe0\n        /* \"#utility.yul\":24017:24026   */\n      dup4\n        /* \"#utility.yul\":24013:24032   */\n      add\n        /* \"#utility.yul\":24006:24055   */\n      mstore\n        /* \"#utility.yul\":24072:24148   */\n      tag_514\n        /* \"#utility.yul\":24143:24147   */\n      dup2\n        /* \"#utility.yul\":24134:24140   */\n      dup6\n        /* \"#utility.yul\":24072:24148   */\n      tag_373\n      jump\t// in\n    tag_514:\n        /* \"#utility.yul\":24064:24148   */\n      swap1\n      pop\n        /* \"#utility.yul\":24196:24205   */\n      dup2\n        /* \"#utility.yul\":24190:24194   */\n      dup2\n        /* \"#utility.yul\":24186:24206   */\n      sub\n        /* \"#utility.yul\":24180:24183   */\n      0x0100\n        /* \"#utility.yul\":24169:24178   */\n      dup4\n        /* \"#utility.yul\":24165:24184   */\n      add\n        /* \"#utility.yul\":24158:24207   */\n      mstore\n        /* \"#utility.yul\":24224:24300   */\n      tag_515\n        /* \"#utility.yul\":24295:24299   */\n      dup2\n        /* \"#utility.yul\":24286:24292   */\n      dup5\n        /* \"#utility.yul\":24224:24300   */\n      tag_373\n      jump\t// in\n    tag_515:\n        /* \"#utility.yul\":24216:24300   */\n      swap1\n      pop\n        /* \"#utility.yul\":23270:24307   */\n      swap11\n      swap10\n      pop\n      pop\n      pop\n      pop\n      pop\n      pop\n      pop\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":24313:24535   */\n    tag_32:\n        /* \"#utility.yul\":24406:24410   */\n      0x00\n        /* \"#utility.yul\":24444:24446   */\n      0x20\n        /* \"#utility.yul\":24433:24442   */\n      dup3\n        /* \"#utility.yul\":24429:24447   */\n      add\n        /* \"#utility.yul\":24421:24447   */\n      swap1\n      pop\n        /* \"#utility.yul\":24457:24528   */\n      tag_517\n        /* \"#utility.yul\":24525:24526   */\n      0x00\n        /* \"#utility.yul\":24514:24523   */\n      dup4\n        /* \"#utility.yul\":24510:24527   */\n      add\n        /* \"#utility.yul\":24501:24507   */\n      dup5\n        /* \"#utility.yul\":24457:24528   */\n      tag_450\n      jump\t// in\n    tag_517:\n        /* \"#utility.yul\":24411:24535   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":24541:24670   */\n    tag_245:\n        /* \"#utility.yul\":24575:24581   */\n      0x00\n        /* \"#utility.yul\":24602:24622   */\n      tag_519\n      tag_520\n      jump\t// in\n    tag_519:\n        /* \"#utility.yul\":24592:24622   */\n      swap1\n      pop\n        /* \"#utility.yul\":24631:24664   */\n      tag_521\n        /* \"#utility.yul\":24659:24663   */\n      dup3\n        /* \"#utility.yul\":24651:24657   */\n      dup3\n        /* \"#utility.yul\":24631:24664   */\n      tag_522\n      jump\t// in\n    tag_521:\n        /* \"#utility.yul\":24582:24670   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":24676:24751   */\n    tag_520:\n        /* \"#utility.yul\":24709:24715   */\n      0x00\n        /* \"#utility.yul\":24742:24744   */\n      0x40\n        /* \"#utility.yul\":24736:24745   */\n      mload\n        /* \"#utility.yul\":24726:24745   */\n      swap1\n      pop\n        /* \"#utility.yul\":24716:24751   */\n      swap1\n      jump\t// out\n        /* \"#utility.yul\":24757:25064   */\n    tag_244:\n        /* \"#utility.yul\":24818:24822   */\n      0x00\n        /* \"#utility.yul\":24908:24926   */\n      0xffffffffffffffff\n        /* \"#utility.yul\":24900:24906   */\n      dup3\n        /* \"#utility.yul\":24897:24927   */\n      gt\n        /* \"#utility.yul\":24894:24896   */\n      iszero\n      tag_525\n      jumpi\n        /* \"#utility.yul\":24930:24948   */\n      tag_526\n      tag_527\n      jump\t// in\n    tag_526:\n        /* \"#utility.yul\":24894:24896   */\n    tag_525:\n        /* \"#utility.yul\":24968:24997   */\n      tag_528\n        /* \"#utility.yul\":24990:24996   */\n      dup3\n        /* \"#utility.yul\":24968:24997   */\n      tag_372\n      jump\t// in\n    tag_528:\n        /* \"#utility.yul\":24960:24997   */\n      swap1\n      pop\n        /* \"#utility.yul\":25052:25056   */\n      0x20\n        /* \"#utility.yul\":25046:25050   */\n      dup2\n        /* \"#utility.yul\":25042:25057   */\n      add\n        /* \"#utility.yul\":25034:25057   */\n      swap1\n      pop\n        /* \"#utility.yul\":24823:25064   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":25070:25168   */\n    tag_366:\n        /* \"#utility.yul\":25121:25127   */\n      0x00\n        /* \"#utility.yul\":25155:25160   */\n      dup2\n        /* \"#utility.yul\":25149:25161   */\n      mload\n        /* \"#utility.yul\":25139:25161   */\n      swap1\n      pop\n        /* \"#utility.yul\":25128:25168   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":25174:25273   */\n    tag_393:\n        /* \"#utility.yul\":25226:25232   */\n      0x00\n        /* \"#utility.yul\":25260:25265   */\n      dup2\n        /* \"#utility.yul\":25254:25266   */\n      mload\n        /* \"#utility.yul\":25244:25266   */\n      swap1\n      pop\n        /* \"#utility.yul\":25233:25273   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":25279:25437   */\n    tag_368:\n        /* \"#utility.yul\":25352:25363   */\n      0x00\n        /* \"#utility.yul\":25386:25392   */\n      dup3\n        /* \"#utility.yul\":25381:25384   */\n      dup3\n        /* \"#utility.yul\":25374:25393   */\n      mstore\n        /* \"#utility.yul\":25426:25430   */\n      0x20\n        /* \"#utility.yul\":25421:25424   */\n      dup3\n        /* \"#utility.yul\":25417:25431   */\n      add\n        /* \"#utility.yul\":25402:25431   */\n      swap1\n      pop\n        /* \"#utility.yul\":25364:25437   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":25443:25611   */\n    tag_377:\n        /* \"#utility.yul\":25526:25537   */\n      0x00\n        /* \"#utility.yul\":25560:25566   */\n      dup3\n        /* \"#utility.yul\":25555:25558   */\n      dup3\n        /* \"#utility.yul\":25548:25567   */\n      mstore\n        /* \"#utility.yul\":25600:25604   */\n      0x20\n        /* \"#utility.yul\":25595:25598   */\n      dup3\n        /* \"#utility.yul\":25591:25605   */\n      add\n        /* \"#utility.yul\":25576:25605   */\n      swap1\n      pop\n        /* \"#utility.yul\":25538:25611   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":25617:25764   */\n    tag_384:\n        /* \"#utility.yul\":25718:25729   */\n      0x00\n        /* \"#utility.yul\":25755:25758   */\n      dup2\n        /* \"#utility.yul\":25740:25758   */\n      swap1\n      pop\n        /* \"#utility.yul\":25730:25764   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":25770:25939   */\n    tag_395:\n        /* \"#utility.yul\":25854:25865   */\n      0x00\n        /* \"#utility.yul\":25888:25894   */\n      dup3\n        /* \"#utility.yul\":25883:25886   */\n      dup3\n        /* \"#utility.yul\":25876:25895   */\n      mstore\n        /* \"#utility.yul\":25928:25932   */\n      0x20\n        /* \"#utility.yul\":25923:25926   */\n      dup3\n        /* \"#utility.yul\":25919:25933   */\n      add\n        /* \"#utility.yul\":25904:25933   */\n      swap1\n      pop\n        /* \"#utility.yul\":25866:25939   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":25945:26130   */\n    tag_120:\n        /* \"#utility.yul\":25985:25986   */\n      0x00\n        /* \"#utility.yul\":26002:26022   */\n      tag_536\n        /* \"#utility.yul\":26020:26021   */\n      dup3\n        /* \"#utility.yul\":26002:26022   */\n      tag_449\n      jump\t// in\n    tag_536:\n        /* \"#utility.yul\":25997:26022   */\n      swap2\n      pop\n        /* \"#utility.yul\":26036:26056   */\n      tag_537\n        /* \"#utility.yul\":26054:26055   */\n      dup4\n        /* \"#utility.yul\":26036:26056   */\n      tag_449\n      jump\t// in\n    tag_537:\n        /* \"#utility.yul\":26031:26056   */\n      swap3\n      pop\n        /* \"#utility.yul\":26075:26076   */\n      dup3\n        /* \"#utility.yul\":26065:26067   */\n      tag_538\n      jumpi\n        /* \"#utility.yul\":26080:26098   */\n      tag_539\n      tag_540\n      jump\t// in\n    tag_539:\n        /* \"#utility.yul\":26065:26067   */\n    tag_538:\n        /* \"#utility.yul\":26122:26123   */\n      dup3\n        /* \"#utility.yul\":26119:26120   */\n      dup3\n        /* \"#utility.yul\":26115:26124   */\n      div\n        /* \"#utility.yul\":26110:26124   */\n      swap1\n      pop\n        /* \"#utility.yul\":25987:26130   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":26136:26484   */\n    tag_118:\n        /* \"#utility.yul\":26176:26183   */\n      0x00\n        /* \"#utility.yul\":26199:26219   */\n      tag_542\n        /* \"#utility.yul\":26217:26218   */\n      dup3\n        /* \"#utility.yul\":26199:26219   */\n      tag_449\n      jump\t// in\n    tag_542:\n        /* \"#utility.yul\":26194:26219   */\n      swap2\n      pop\n        /* \"#utility.yul\":26233:26253   */\n      tag_543\n        /* \"#utility.yul\":26251:26252   */\n      dup4\n        /* \"#utility.yul\":26233:26253   */\n      tag_449\n      jump\t// in\n    tag_543:\n        /* \"#utility.yul\":26228:26253   */\n      swap3\n      pop\n        /* \"#utility.yul\":26421:26422   */\n      dup2\n        /* \"#utility.yul\":26353:26419   */\n      0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n        /* \"#utility.yul\":26349:26423   */\n      div\n        /* \"#utility.yul\":26346:26347   */\n      dup4\n        /* \"#utility.yul\":26343:26424   */\n      gt\n        /* \"#utility.yul\":26338:26339   */\n      dup3\n        /* \"#utility.yul\":26331:26340   */\n      iszero\n        /* \"#utility.yul\":26324:26341   */\n      iszero\n        /* \"#utility.yul\":26320:26425   */\n      and\n        /* \"#utility.yul\":26317:26319   */\n      iszero\n      tag_544\n      jumpi\n        /* \"#utility.yul\":26428:26446   */\n      tag_545\n      tag_546\n      jump\t// in\n    tag_545:\n        /* \"#utility.yul\":26317:26319   */\n    tag_544:\n        /* \"#utility.yul\":26476:26477   */\n      dup3\n        /* \"#utility.yul\":26473:26474   */\n      dup3\n        /* \"#utility.yul\":26469:26478   */\n      mul\n        /* \"#utility.yul\":26458:26478   */\n      swap1\n      pop\n        /* \"#utility.yul\":26184:26484   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":26490:26681   */\n    tag_116:\n        /* \"#utility.yul\":26530:26534   */\n      0x00\n        /* \"#utility.yul\":26550:26570   */\n      tag_548\n        /* \"#utility.yul\":26568:26569   */\n      dup3\n        /* \"#utility.yul\":26550:26570   */\n      tag_449\n      jump\t// in\n    tag_548:\n        /* \"#utility.yul\":26545:26570   */\n      swap2\n      pop\n        /* \"#utility.yul\":26584:26604   */\n      tag_549\n        /* \"#utility.yul\":26602:26603   */\n      dup4\n        /* \"#utility.yul\":26584:26604   */\n      tag_449\n      jump\t// in\n    tag_549:\n        /* \"#utility.yul\":26579:26604   */\n      swap3\n      pop\n        /* \"#utility.yul\":26623:26624   */\n      dup3\n        /* \"#utility.yul\":26620:26621   */\n      dup3\n        /* \"#utility.yul\":26617:26625   */\n      lt\n        /* \"#utility.yul\":26614:26616   */\n      iszero\n      tag_550\n      jumpi\n        /* \"#utility.yul\":26628:26646   */\n      tag_551\n      tag_546\n      jump\t// in\n    tag_551:\n        /* \"#utility.yul\":26614:26616   */\n    tag_550:\n        /* \"#utility.yul\":26673:26674   */\n      dup3\n        /* \"#utility.yul\":26670:26671   */\n      dup3\n        /* \"#utility.yul\":26666:26675   */\n      sub\n        /* \"#utility.yul\":26658:26675   */\n      swap1\n      pop\n        /* \"#utility.yul\":26535:26681   */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":26687:26783   */\n    tag_353:\n        /* \"#utility.yul\":26724:26731   */\n      0x00\n        /* \"#utility.yul\":26753:26777   */\n      tag_553\n        /* \"#utility.yul\":26771:26776   */\n      dup3\n        /* \"#utility.yul\":26753:26777   */\n      tag_554\n      jump\t// in\n    tag_553:\n        /* \"#utility.yul\":26742:26777   */\n      swap1\n      pop\n        /* \"#utility.yul\":26732:26783   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":26789:26893   */\n    tag_349:\n        /* \"#utility.yul\":26834:26841   */\n      0x00\n        /* \"#utility.yul\":26863:26887   */\n      tag_556\n        /* \"#utility.yul\":26881:26886   */\n      dup3\n        /* \"#utility.yul\":26863:26887   */\n      tag_554\n      jump\t// in\n    tag_556:\n        /* \"#utility.yul\":26852:26887   */\n      swap1\n      pop\n        /* \"#utility.yul\":26842:26893   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":26899:26989   */\n    tag_362:\n        /* \"#utility.yul\":26933:26940   */\n      0x00\n        /* \"#utility.yul\":26976:26981   */\n      dup2\n        /* \"#utility.yul\":26969:26982   */\n      iszero\n        /* \"#utility.yul\":26962:26983   */\n      iszero\n        /* \"#utility.yul\":26951:26983   */\n      swap1\n      pop\n        /* \"#utility.yul\":26941:26989   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":26995:27084   */\n    tag_442:\n        /* \"#utility.yul\":27031:27038   */\n      0x00\n        /* \"#utility.yul\":27071:27077   */\n      0xffff\n        /* \"#utility.yul\":27064:27069   */\n      dup3\n        /* \"#utility.yul\":27060:27078   */\n      and\n        /* \"#utility.yul\":27049:27078   */\n      swap1\n      pop\n        /* \"#utility.yul\":27039:27084   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":27090:27216   */\n    tag_554:\n        /* \"#utility.yul\":27127:27134   */\n      0x00\n        /* \"#utility.yul\":27167:27209   */\n      0xffffffffffffffffffffffffffffffffffffffff\n        /* \"#utility.yul\":27160:27165   */\n      dup3\n        /* \"#utility.yul\":27156:27210   */\n      and\n        /* \"#utility.yul\":27145:27210   */\n      swap1\n      pop\n        /* \"#utility.yul\":27135:27216   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":27222:27299   */\n    tag_449:\n        /* \"#utility.yul\":27259:27266   */\n      0x00\n        /* \"#utility.yul\":27288:27293   */\n      dup2\n        /* \"#utility.yul\":27277:27293   */\n      swap1\n      pop\n        /* \"#utility.yul\":27267:27299   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":27305:27391   */\n    tag_561:\n        /* \"#utility.yul\":27340:27347   */\n      0x00\n        /* \"#utility.yul\":27380:27384   */\n      0xff\n        /* \"#utility.yul\":27373:27378   */\n      dup3\n        /* \"#utility.yul\":27369:27385   */\n      and\n        /* \"#utility.yul\":27358:27385   */\n      swap1\n      pop\n        /* \"#utility.yul\":27348:27391   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":27397:27531   */\n    tag_345:\n        /* \"#utility.yul\":27455:27464   */\n      0x00\n        /* \"#utility.yul\":27488:27525   */\n      tag_564\n        /* \"#utility.yul\":27519:27524   */\n      dup3\n        /* \"#utility.yul\":27488:27525   */\n      tag_565\n      jump\t// in\n    tag_564:\n        /* \"#utility.yul\":27475:27525   */\n      swap1\n      pop\n        /* \"#utility.yul\":27465:27531   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":27537:27654   */\n    tag_389:\n        /* \"#utility.yul\":27593:27602   */\n      0x00\n        /* \"#utility.yul\":27626:27648   */\n      tag_567\n        /* \"#utility.yul\":27642:27647   */\n      dup3\n        /* \"#utility.yul\":27626:27648   */\n      tag_561\n      jump\t// in\n    tag_567:\n        /* \"#utility.yul\":27613:27648   */\n      swap1\n      pop\n        /* \"#utility.yul\":27603:27654   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":27660:27786   */\n    tag_565:\n        /* \"#utility.yul\":27710:27719   */\n      0x00\n        /* \"#utility.yul\":27743:27780   */\n      tag_569\n        /* \"#utility.yul\":27774:27779   */\n      dup3\n        /* \"#utility.yul\":27743:27780   */\n      tag_570\n      jump\t// in\n    tag_569:\n        /* \"#utility.yul\":27730:27780   */\n      swap1\n      pop\n        /* \"#utility.yul\":27720:27786   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":27792:27905   */\n    tag_570:\n        /* \"#utility.yul\":27842:27851   */\n      0x00\n        /* \"#utility.yul\":27875:27899   */\n      tag_572\n        /* \"#utility.yul\":27893:27898   */\n      dup3\n        /* \"#utility.yul\":27875:27899   */\n      tag_554\n      jump\t// in\n    tag_572:\n        /* \"#utility.yul\":27862:27899   */\n      swap1\n      pop\n        /* \"#utility.yul\":27852:27905   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":27911:28022   */\n    tag_446:\n        /* \"#utility.yul\":27960:27969   */\n      0x00\n        /* \"#utility.yul\":27993:28016   */\n      tag_574\n        /* \"#utility.yul\":28010:28015   */\n      dup3\n        /* \"#utility.yul\":27993:28016   */\n      tag_442\n      jump\t// in\n    tag_574:\n        /* \"#utility.yul\":27980:28016   */\n      swap1\n      pop\n        /* \"#utility.yul\":27970:28022   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":28028:28182   */\n    tag_248:\n        /* \"#utility.yul\":28112:28118   */\n      dup3\n        /* \"#utility.yul\":28107:28110   */\n      dup2\n        /* \"#utility.yul\":28102:28105   */\n      dup4\n        /* \"#utility.yul\":28089:28119   */\n      calldatacopy\n        /* \"#utility.yul\":28174:28175   */\n      0x00\n        /* \"#utility.yul\":28165:28171   */\n      dup4\n        /* \"#utility.yul\":28160:28163   */\n      dup4\n        /* \"#utility.yul\":28156:28172   */\n      add\n        /* \"#utility.yul\":28149:28176   */\n      mstore\n        /* \"#utility.yul\":28079:28182   */\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":28188:28495   */\n    tag_370:\n        /* \"#utility.yul\":28256:28257   */\n      0x00\n        /* \"#utility.yul\":28266:28379   */\n    tag_577:\n        /* \"#utility.yul\":28280:28286   */\n      dup4\n        /* \"#utility.yul\":28277:28278   */\n      dup2\n        /* \"#utility.yul\":28274:28287   */\n      lt\n        /* \"#utility.yul\":28266:28379   */\n      iszero\n      tag_579\n      jumpi\n        /* \"#utility.yul\":28365:28366   */\n      dup1\n        /* \"#utility.yul\":28360:28363   */\n      dup3\n        /* \"#utility.yul\":28356:28367   */\n      add\n        /* \"#utility.yul\":28350:28368   */\n      mload\n        /* \"#utility.yul\":28346:28347   */\n      dup2\n        /* \"#utility.yul\":28341:28344   */\n      dup5\n        /* \"#utility.yul\":28337:28348   */\n      add\n        /* \"#utility.yul\":28330:28369   */\n      mstore\n        /* \"#utility.yul\":28302:28304   */\n      0x20\n        /* \"#utility.yul\":28299:28300   */\n      dup2\n        /* \"#utility.yul\":28295:28305   */\n      add\n        /* \"#utility.yul\":28290:28305   */\n      swap1\n      pop\n        /* \"#utility.yul\":28266:28379   */\n      jump(tag_577)\n    tag_579:\n        /* \"#utility.yul\":28397:28403   */\n      dup4\n        /* \"#utility.yul\":28394:28395   */\n      dup2\n        /* \"#utility.yul\":28391:28404   */\n      gt\n        /* \"#utility.yul\":28388:28390   */\n      iszero\n      tag_580\n      jumpi\n        /* \"#utility.yul\":28477:28478   */\n      0x00\n        /* \"#utility.yul\":28468:28474   */\n      dup5\n        /* \"#utility.yul\":28463:28466   */\n      dup5\n        /* \"#utility.yul\":28459:28475   */\n      add\n        /* \"#utility.yul\":28452:28479   */\n      mstore\n        /* \"#utility.yul\":28388:28390   */\n    tag_580:\n        /* \"#utility.yul\":28237:28495   */\n      pop\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":28501:28782   */\n    tag_522:\n        /* \"#utility.yul\":28584:28611   */\n      tag_582\n        /* \"#utility.yul\":28606:28610   */\n      dup3\n        /* \"#utility.yul\":28584:28611   */\n      tag_372\n      jump\t// in\n    tag_582:\n        /* \"#utility.yul\":28576:28582   */\n      dup2\n        /* \"#utility.yul\":28572:28612   */\n      add\n        /* \"#utility.yul\":28714:28720   */\n      dup2\n        /* \"#utility.yul\":28702:28712   */\n      dup2\n        /* \"#utility.yul\":28699:28721   */\n      lt\n        /* \"#utility.yul\":28678:28696   */\n      0xffffffffffffffff\n        /* \"#utility.yul\":28666:28676   */\n      dup3\n        /* \"#utility.yul\":28663:28697   */\n      gt\n        /* \"#utility.yul\":28660:28722   */\n      or\n        /* \"#utility.yul\":28657:28659   */\n      iszero\n      tag_583\n      jumpi\n        /* \"#utility.yul\":28725:28743   */\n      tag_584\n      tag_527\n      jump\t// in\n    tag_584:\n        /* \"#utility.yul\":28657:28659   */\n    tag_583:\n        /* \"#utility.yul\":28765:28775   */\n      dup1\n        /* \"#utility.yul\":28761:28763   */\n      0x40\n        /* \"#utility.yul\":28754:28776   */\n      mstore\n        /* \"#utility.yul\":28544:28782   */\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":28788:28888   */\n    tag_358:\n        /* \"#utility.yul\":28827:28834   */\n      0x00\n        /* \"#utility.yul\":28856:28882   */\n      tag_586\n        /* \"#utility.yul\":28876:28881   */\n      dup3\n        /* \"#utility.yul\":28856:28882   */\n      tag_587\n      jump\t// in\n    tag_586:\n        /* \"#utility.yul\":28845:28882   */\n      swap1\n      pop\n        /* \"#utility.yul\":28835:28888   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":28894:28988   */\n    tag_587:\n        /* \"#utility.yul\":28933:28940   */\n      0x00\n        /* \"#utility.yul\":28962:28982   */\n      tag_589\n        /* \"#utility.yul\":28976:28981   */\n      dup3\n        /* \"#utility.yul\":28962:28982   */\n      tag_590\n      jump\t// in\n    tag_589:\n        /* \"#utility.yul\":28951:28982   */\n      swap1\n      pop\n        /* \"#utility.yul\":28941:28988   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":28994:29174   */\n    tag_546:\n        /* \"#utility.yul\":29042:29119   */\n      0x4e487b7100000000000000000000000000000000000000000000000000000000\n        /* \"#utility.yul\":29039:29040   */\n      0x00\n        /* \"#utility.yul\":29032:29120   */\n      mstore\n        /* \"#utility.yul\":29139:29143   */\n      0x11\n        /* \"#utility.yul\":29136:29137   */\n      0x04\n        /* \"#utility.yul\":29129:29144   */\n      mstore\n        /* \"#utility.yul\":29163:29167   */\n      0x24\n        /* \"#utility.yul\":29160:29161   */\n      0x00\n        /* \"#utility.yul\":29153:29168   */\n      revert\n        /* \"#utility.yul\":29180:29360   */\n    tag_540:\n        /* \"#utility.yul\":29228:29305   */\n      0x4e487b7100000000000000000000000000000000000000000000000000000000\n        /* \"#utility.yul\":29225:29226   */\n      0x00\n        /* \"#utility.yul\":29218:29306   */\n      mstore\n        /* \"#utility.yul\":29325:29329   */\n      0x12\n        /* \"#utility.yul\":29322:29323   */\n      0x04\n        /* \"#utility.yul\":29315:29330   */\n      mstore\n        /* \"#utility.yul\":29349:29353   */\n      0x24\n        /* \"#utility.yul\":29346:29347   */\n      0x00\n        /* \"#utility.yul\":29339:29354   */\n      revert\n        /* \"#utility.yul\":29366:29546   */\n    tag_527:\n        /* \"#utility.yul\":29414:29491   */\n      0x4e487b7100000000000000000000000000000000000000000000000000000000\n        /* \"#utility.yul\":29411:29412   */\n      0x00\n        /* \"#utility.yul\":29404:29492   */\n      mstore\n        /* \"#utility.yul\":29511:29515   */\n      0x41\n        /* \"#utility.yul\":29508:29509   */\n      0x04\n        /* \"#utility.yul\":29501:29516   */\n      mstore\n        /* \"#utility.yul\":29535:29539   */\n      0x24\n        /* \"#utility.yul\":29532:29533   */\n      0x00\n        /* \"#utility.yul\":29525:29540   */\n      revert\n        /* \"#utility.yul\":29552:29654   */\n    tag_372:\n        /* \"#utility.yul\":29593:29599   */\n      0x00\n        /* \"#utility.yul\":29644:29646   */\n      0x1f\n        /* \"#utility.yul\":29640:29647   */\n      not\n        /* \"#utility.yul\":29635:29637   */\n      0x1f\n        /* \"#utility.yul\":29628:29633   */\n      dup4\n        /* \"#utility.yul\":29624:29638   */\n      add\n        /* \"#utility.yul\":29620:29648   */\n      and\n        /* \"#utility.yul\":29610:29648   */\n      swap1\n      pop\n        /* \"#utility.yul\":29600:29654   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":29660:29754   */\n    tag_590:\n        /* \"#utility.yul\":29693:29701   */\n      0x00\n        /* \"#utility.yul\":29741:29746   */\n      dup2\n        /* \"#utility.yul\":29737:29739   */\n      0x60\n        /* \"#utility.yul\":29733:29747   */\n      shl\n        /* \"#utility.yul\":29712:29747   */\n      swap1\n      pop\n        /* \"#utility.yul\":29702:29754   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":29760:29981   */\n    tag_402:\n        /* \"#utility.yul\":29900:29934   */\n      0x4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e\n        /* \"#utility.yul\":29896:29897   */\n      0x00\n        /* \"#utility.yul\":29888:29894   */\n      dup3\n        /* \"#utility.yul\":29884:29898   */\n      add\n        /* \"#utility.yul\":29877:29935   */\n      mstore\n        /* \"#utility.yul\":29969:29973   */\n      0x6572000000000000000000000000000000000000000000000000000000000000\n        /* \"#utility.yul\":29964:29966   */\n      0x20\n        /* \"#utility.yul\":29956:29962   */\n      dup3\n        /* \"#utility.yul\":29952:29967   */\n      add\n        /* \"#utility.yul\":29945:29974   */\n      mstore\n        /* \"#utility.yul\":29866:29981   */\n      pop\n      jump\t// out\n        /* \"#utility.yul\":29987:30139   */\n    tag_407:\n        /* \"#utility.yul\":30127:30131   */\n      0x3078000000000000000000000000000000000000000000000000000000000000\n        /* \"#utility.yul\":30123:30124   */\n      0x00\n        /* \"#utility.yul\":30115:30121   */\n      dup3\n        /* \"#utility.yul\":30111:30125   */\n      add\n        /* \"#utility.yul\":30104:30132   */\n      mstore\n        /* \"#utility.yul\":30093:30139   */\n      pop\n      jump\t// out\n        /* \"#utility.yul\":30145:30370   */\n    tag_412:\n        /* \"#utility.yul\":30285:30319   */\n      0x416464726573733a20696e73756666696369656e742062616c616e636520666f\n        /* \"#utility.yul\":30281:30282   */\n      0x00\n        /* \"#utility.yul\":30273:30279   */\n      dup3\n        /* \"#utility.yul\":30269:30283   */\n      add\n        /* \"#utility.yul\":30262:30320   */\n      mstore\n        /* \"#utility.yul\":30354:30362   */\n      0x722063616c6c0000000000000000000000000000000000000000000000000000\n        /* \"#utility.yul\":30349:30351   */\n      0x20\n        /* \"#utility.yul\":30341:30347   */\n      dup3\n        /* \"#utility.yul\":30337:30352   */\n      add\n        /* \"#utility.yul\":30330:30363   */\n      mstore\n        /* \"#utility.yul\":30251:30370   */\n      pop\n      jump\t// out\n        /* \"#utility.yul\":30376:30534   */\n    tag_417:\n        /* \"#utility.yul\":30516:30526   */\n      0x7374617267617465000000000000000000000000000000000000000000000000\n        /* \"#utility.yul\":30512:30513   */\n      0x00\n        /* \"#utility.yul\":30504:30510   */\n      dup3\n        /* \"#utility.yul\":30500:30514   */\n      add\n        /* \"#utility.yul\":30493:30527   */\n      mstore\n        /* \"#utility.yul\":30482:30534   */\n      pop\n      jump\t// out\n        /* \"#utility.yul\":30540:30719   */\n    tag_422:\n        /* \"#utility.yul\":30680:30711   */\n      0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000\n        /* \"#utility.yul\":30676:30677   */\n      0x00\n        /* \"#utility.yul\":30668:30674   */\n      dup3\n        /* \"#utility.yul\":30664:30678   */\n      add\n        /* \"#utility.yul\":30657:30712   */\n      mstore\n        /* \"#utility.yul\":30646:30719   */\n      pop\n      jump\t// out\n        /* \"#utility.yul\":30725:30954   */\n    tag_427:\n        /* \"#utility.yul\":30865:30899   */\n      0x5361666545524332303a204552433230206f7065726174696f6e20646964206e\n        /* \"#utility.yul\":30861:30862   */\n      0x00\n        /* \"#utility.yul\":30853:30859   */\n      dup3\n        /* \"#utility.yul\":30849:30863   */\n      add\n        /* \"#utility.yul\":30842:30900   */\n      mstore\n        /* \"#utility.yul\":30934:30946   */\n      0x6f74207375636365656400000000000000000000000000000000000000000000\n        /* \"#utility.yul\":30929:30931   */\n      0x20\n        /* \"#utility.yul\":30921:30927   */\n      dup3\n        /* \"#utility.yul\":30917:30932   */\n      add\n        /* \"#utility.yul\":30910:30947   */\n      mstore\n        /* \"#utility.yul\":30831:30954   */\n      pop\n      jump\t// out\n        /* \"#utility.yul\":30960:31201   */\n    tag_432:\n        /* \"#utility.yul\":31100:31134   */\n      0x5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f\n        /* \"#utility.yul\":31096:31097   */\n      0x00\n        /* \"#utility.yul\":31088:31094   */\n      dup3\n        /* \"#utility.yul\":31084:31098   */\n      add\n        /* \"#utility.yul\":31077:31135   */\n      mstore\n        /* \"#utility.yul\":31169:31193   */\n      0x20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000\n        /* \"#utility.yul\":31164:31166   */\n      0x20\n        /* \"#utility.yul\":31156:31162   */\n      dup3\n        /* \"#utility.yul\":31152:31167   */\n      add\n        /* \"#utility.yul\":31145:31194   */\n      mstore\n        /* \"#utility.yul\":31066:31201   */\n      pop\n      jump\t// out\n        /* \"#utility.yul\":31207:31329   */\n    tag_252:\n        /* \"#utility.yul\":31280:31304   */\n      tag_604\n        /* \"#utility.yul\":31298:31303   */\n      dup2\n        /* \"#utility.yul\":31280:31304   */\n      tag_353\n      jump\t// in\n    tag_604:\n        /* \"#utility.yul\":31273:31278   */\n      dup2\n        /* \"#utility.yul\":31270:31305   */\n      eq\n        /* \"#utility.yul\":31260:31262   */\n      tag_605\n      jumpi\n        /* \"#utility.yul\":31319:31320   */\n      0x00\n        /* \"#utility.yul\":31316:31317   */\n      dup1\n        /* \"#utility.yul\":31309:31321   */\n      revert\n        /* \"#utility.yul\":31260:31262   */\n    tag_605:\n        /* \"#utility.yul\":31250:31329   */\n      pop\n      jump\t// out\n        /* \"#utility.yul\":31335:31473   */\n    tag_256:\n        /* \"#utility.yul\":31416:31448   */\n      tag_607\n        /* \"#utility.yul\":31442:31447   */\n      dup2\n        /* \"#utility.yul\":31416:31448   */\n      tag_349\n      jump\t// in\n    tag_607:\n        /* \"#utility.yul\":31409:31414   */\n      dup2\n        /* \"#utility.yul\":31406:31449   */\n      eq\n        /* \"#utility.yul\":31396:31398   */\n      tag_608\n      jumpi\n        /* \"#utility.yul\":31463:31464   */\n      0x00\n        /* \"#utility.yul\":31460:31461   */\n      dup1\n        /* \"#utility.yul\":31453:31465   */\n      revert\n        /* \"#utility.yul\":31396:31398   */\n    tag_608:\n        /* \"#utility.yul\":31386:31473   */\n      pop\n      jump\t// out\n        /* \"#utility.yul\":31479:31595   */\n    tag_263:\n        /* \"#utility.yul\":31549:31570   */\n      tag_610\n        /* \"#utility.yul\":31564:31569   */\n      dup2\n        /* \"#utility.yul\":31549:31570   */\n      tag_362\n      jump\t// in\n    tag_610:\n        /* \"#utility.yul\":31542:31547   */\n      dup2\n        /* \"#utility.yul\":31539:31571   */\n      eq\n        /* \"#utility.yul\":31529:31531   */\n      tag_611\n      jumpi\n        /* \"#utility.yul\":31585:31586   */\n      0x00\n        /* \"#utility.yul\":31582:31583   */\n      dup1\n        /* \"#utility.yul\":31575:31587   */\n      revert\n        /* \"#utility.yul\":31529:31531   */\n    tag_611:\n        /* \"#utility.yul\":31519:31595   */\n      pop\n      jump\t// out\n        /* \"#utility.yul\":31601:31721   */\n    tag_284:\n        /* \"#utility.yul\":31673:31696   */\n      tag_613\n        /* \"#utility.yul\":31690:31695   */\n      dup2\n        /* \"#utility.yul\":31673:31696   */\n      tag_442\n      jump\t// in\n    tag_613:\n        /* \"#utility.yul\":31666:31671   */\n      dup2\n        /* \"#utility.yul\":31663:31697   */\n      eq\n        /* \"#utility.yul\":31653:31655   */\n      tag_614\n      jumpi\n        /* \"#utility.yul\":31711:31712   */\n      0x00\n        /* \"#utility.yul\":31708:31709   */\n      dup1\n        /* \"#utility.yul\":31701:31713   */\n      revert\n        /* \"#utility.yul\":31653:31655   */\n    tag_614:\n        /* \"#utility.yul\":31643:31721   */\n      pop\n      jump\t// out\n        /* \"#utility.yul\":31727:31849   */\n    tag_287:\n        /* \"#utility.yul\":31800:31824   */\n      tag_616\n        /* \"#utility.yul\":31818:31823   */\n      dup2\n        /* \"#utility.yul\":31800:31824   */\n      tag_449\n      jump\t// in\n    tag_616:\n        /* \"#utility.yul\":31793:31798   */\n      dup2\n        /* \"#utility.yul\":31790:31825   */\n      eq\n        /* \"#utility.yul\":31780:31782   */\n      tag_617\n      jumpi\n        /* \"#utility.yul\":31839:31840   */\n      0x00\n        /* \"#utility.yul\":31836:31837   */\n      dup1\n        /* \"#utility.yul\":31829:31841   */\n      revert\n        /* \"#utility.yul\":31780:31782   */\n    tag_617:\n        /* \"#utility.yul\":31770:31849   */\n      pop\n      jump\t// out\n\n    auxdata: 0xa26469706673582212205925f021cf49e0781dce4a9176cd460ade79205f37ae12e8df85aecee8f9a52a64736f6c63430008040033\n}\n",
						"bytecode": {
							"generatedSources": [],
							"linkReferences": {},
							"object": "608060405234801561001057600080fd5b506126f4806100206000396000f3fe6080604052600436106100955760003560e01c8063618c3f2911610059578063618c3f29146101825780636acf5e3f146101bf57806390f12364146101ef578063ab8236f31461022c578063c722a336146102555761009c565b8063217aabb7146100a15780632aad46e3146100ca57806342d910c6146100f3578063498ee469146101305780634be85c35146101595761009c565b3661009c57005b600080fd5b3480156100ad57600080fd5b506100c860048036038101906100c39190611a08565b610271565b005b3480156100d657600080fd5b506100f160048036038101906100ec9190611900565b6102c9565b005b3480156100ff57600080fd5b5061011a600480360381019061011591906118b1565b61037d565b60405161012791906120ff565b60405180910390f35b34801561013c57600080fd5b5061015760048036038101906101529190611822565b61048f565b005b34801561016557600080fd5b50610180600480360381019061017b9190611781565b610740565b005b34801561018e57600080fd5b506101a960048036038101906101a49190611a08565b610839565b6040516101b691906120ff565b60405180910390f35b6101d960048036038101906101d49190611887565b610878565b6040516101e69190611e6f565b60405180910390f35b3480156101fb57600080fd5b5061021660048036038101906102119190611900565b610d75565b6040516102239190611e6f565b60405180910390f35b34801561023857600080fd5b50610253600480360381019061024e919061194f565b610df7565b005b61026f600480360381019061026a91906117d3565b610f75565b005b61027961103a565b60006102836110d5565b90508181600201819055507f45934903f6b10aff9d3435b8362d284d95d14ca68e8554f05f04c7856a6003c0826040516102bd91906120ff565b60405180910390a15050565b6102d161103a565b60006102db6110d5565b9050818160030160008661ffff1661ffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f5a600144b7b71ca7ee988e17e7745e8d46eb24056d4818716be29fa976393a8e84848460405161036f93929190611fc0565b60405180910390a150505050565b6000808273ffffffffffffffffffffffffffffffffffffffff16630a512369866001876040516020016103b09190611d55565b604051602081830303815290604052604051806060016040528062030d408152602001600081526020016040518060400160405280600281526020017f30780000000000000000000000000000000000000000000000000000000000008152508152506040518563ffffffff1660e01b81526004016104329493929190611ff7565b604080518083038186803b15801561044957600080fd5b505afa15801561045d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104819190611a5a565b509050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156104f6576040517f35be3ac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104fe61103a565b60006105086110d5565b9050828160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818160000160146101000a81548161ffff021916908361ffff16021790555060328160020181905550610597600173a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4860016102c9565b6105b8600173dac17f958d2ee523a2206206994597c13d831ec760026102c9565b6105d960027355d398326f99059ff775485246999027b319795560026102c9565b6105fa600273e9e7cea3dedca5984780bafc599bd69add087d5660056102c9565b61061b600673b97ef9ef8734c71904d8002f8b6bc66dd9c48a6e60016102c9565b61063c6006739702230a8ea53601f5cd2dc00fdbc13d4df4a8c760026102c9565b61065d6009732791bca1f2de4661ed88a30c99a7a9449aa8417460016102c9565b61067e600973c2132d05d31c914a87c6611c10748aeb04b58e8f60026102c9565b61069f600a73ff970a61a04b1ca14834a43f5de4533ebddb5cc860016102c9565b6106c0600a73fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb960026102c9565b6106e1600b737f5c764cbc14f9669b88837ca1490cca17c3160760016102c9565b610702600c7304068da6c83afcfa0e13ba15a6696662335d5b7560016102c9565b7fc8ec31998a27444f477c01de93c393769fd4fc017fb63163f71f8a8ab72ccd508383604051610733929190611e1d565b60405180910390a1505050565b61074861103a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156107af576040517f3911c65500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006107b96110d5565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9ac04272c4559bf7459414abb5568dc1df58ab649f0af4afd1510074f5cc2fec8260405161082d9190611d87565b60405180910390a15050565b6000806108446110d5565b9050612710816002015461271061085b919061224f565b8461086691906121f5565b61087091906121c4565b915050919050565b600080610883611102565b90506001816000015414156108c4576040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001816000018190555060003411610908576040517fb7586d1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000836000015111610946576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16836020015173ffffffffffffffffffffffffffffffffffffffff1614806109b55750600073ffffffffffffffffffffffffffffffffffffffff16836040015173ffffffffffffffffffffffffffffffffffffffff16145b806109f05750600073ffffffffffffffffffffffffffffffffffffffff168360c0015173ffffffffffffffffffffffffffffffffffffffff16145b80610a2b5750600073ffffffffffffffffffffffffffffffffffffffff168360e0015173ffffffffffffffffffffffffffffffffffffffff16145b15610a62576040517f35be3ac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610a6c6110d5565b9050610a978160000160149054906101000a900461ffff168560200151866080015161ffff16610d75565b610acd576040517f7790ca9900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ae8846060015185604001518660a0015161ffff16610d75565b610b1e576040517f186c877f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610b2d8560000151610839565b905060008560c00151604051602001610b469190611da2565b6040516020818303038152906040529050610b8c33308860000151896020015173ffffffffffffffffffffffffffffffffffffffff1661112f909392919063ffffffff16565b610be38360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168760000151886020015173ffffffffffffffffffffffffffffffffffffffff166111b89092919063ffffffff16565b8260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fbf10fc34886060015189608001518a60a00151338c6000015189604051806060016040528062030d408152602001600081526020016040518060400160405280600281526020017f30780000000000000000000000000000000000000000000000000000000000008152508152508f60e00151604051602001610ca39190611d55565b6040516020818303038152906040528b6040518b63ffffffff1660e01b8152600401610cd79998979695949392919061205d565b6000604051808303818588803b158015610cf057600080fd5b505af1158015610d04573d6000803e3d6000fd5b50505050507f7a72e6f4a3d77f8a5a6c536a973421c5bf00107f9aec7995661537673b8be08786602001518760400151338960c001518a600001518b60600151604051610d5696959493929190611eec565b60405180910390a1600194505050506000816000018190555050919050565b600080610d806110d5565b9050828160030160008761ffff1661ffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610dea576000610ded565b60015b9150509392505050565b6000610e016110d5565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e8c576040517fdade3c7100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082806020019051810190610ea291906117aa565b90508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82866040518363ffffffff1660e01b8152600401610edf929190611e46565b602060405180830381600087803b158015610ef957600080fd5b505af1158015610f0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f31919061185e565b507f827e3293895509ef037b7438d4e009f37ad7b2562a14695d9dfd9cb0659842188585604051610f63929190611e46565b60405180910390a15050505050505050565b6000610f7f611102565b9050600181600001541415610fc0576040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018160000181905550610fd261103a565b610ffd30838673ffffffffffffffffffffffffffffffffffffffff166111b89092919063ffffffff16565b61102a3084848773ffffffffffffffffffffffffffffffffffffffff1661112f909392919063ffffffff16565b6000816000018190555050505050565b611042611316565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ca90611eac565b60405180910390fd5b565b6000807fbaeadb48cbcf0176d6c6ac156b0140abe0fb28a100a9a6a8b5df37e55693b1c890508091505090565b6000807fa65bb2f450488ab0858c00edc14abc5297769bf42adb48cfb77752890e8b697b90508091505090565b6111b2846323b872dd60e01b85858560405160240161115093929190611de6565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611343565b50505050565b6000811480611251575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b81526004016111ff929190611dbd565b60206040518083038186803b15801561121757600080fd5b505afa15801561122b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124f9190611a31565b145b611290576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128790611fa0565b60405180910390fd5b6113118363095ea7b360e01b84846040516024016112af929190611e46565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611343565b505050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b60006113a5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661140a9092919063ffffffff16565b905060008151111561140557808060200190518101906113c5919061185e565b611404576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fb90611f80565b60405180910390fd5b5b505050565b60606114198484600085611422565b90509392505050565b606082471015611467576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145e90611ecc565b60405180910390fd5b61147085611536565b6114af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a690611f60565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516114d89190611d70565b60006040518083038185875af1925050503d8060008114611515576040519150601f19603f3d011682016040523d82523d6000602084013e61151a565b606091505b509150915061152a828286611559565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60608315611569578290506115b9565b60008351111561157c5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b09190611e8a565b60405180910390fd5b9392505050565b60006115d36115ce8461213f565b61211a565b9050828152602081018484840111156115eb57600080fd5b6115f6848285612352565b509392505050565b60008135905061160d8161264b565b92915050565b60008135905061162281612662565b92915050565b60008151905061163781612662565b92915050565b60008151905061164c81612679565b92915050565b600082601f83011261166357600080fd5b81356116738482602086016115c0565b91505092915050565b6000610100828403121561168f57600080fd5b61169a61010061211a565b905060006116aa84828501611757565b60008301525060206116be848285016115fe565b60208301525060406116d2848285016115fe565b60408301525060606116e684828501611742565b60608301525060806116fa84828501611742565b60808301525060a061170e84828501611742565b60a08301525060c061172284828501611613565b60c08301525060e0611736848285016115fe565b60e08301525092915050565b60008135905061175181612690565b92915050565b600081359050611766816126a7565b92915050565b60008151905061177b816126a7565b92915050565b60006020828403121561179357600080fd5b60006117a1848285016115fe565b91505092915050565b6000602082840312156117bc57600080fd5b60006117ca84828501611628565b91505092915050565b6000806000606084860312156117e857600080fd5b60006117f6868287016115fe565b9350506020611807868287016115fe565b925050604061181886828701611757565b9150509250925092565b6000806040838503121561183557600080fd5b6000611843858286016115fe565b925050602061185485828601611742565b9150509250929050565b60006020828403121561187057600080fd5b600061187e8482850161163d565b91505092915050565b6000610100828403121561189a57600080fd5b60006118a88482850161167c565b91505092915050565b6000806000606084860312156118c657600080fd5b60006118d486828701611742565b93505060206118e5868287016115fe565b92505060406118f6868287016115fe565b9150509250925092565b60008060006060848603121561191557600080fd5b600061192386828701611742565b9350506020611934868287016115fe565b925050604061194586828701611757565b9150509250925092565b60008060008060008060c0878903121561196857600080fd5b600061197689828a01611742565b965050602087013567ffffffffffffffff81111561199357600080fd5b61199f89828a01611652565b95505060406119b089828a01611757565b94505060606119c189828a016115fe565b93505060806119d289828a01611757565b92505060a087013567ffffffffffffffff8111156119ef57600080fd5b6119fb89828a01611652565b9150509295509295509295565b600060208284031215611a1a57600080fd5b6000611a2884828501611757565b91505092915050565b600060208284031215611a4357600080fd5b6000611a518482850161176c565b91505092915050565b60008060408385031215611a6d57600080fd5b6000611a7b8582860161176c565b9250506020611a8c8582860161176c565b9150509250929050565b611a9f816122f8565b82525050565b611aae81612295565b82525050565b611abd81612283565b82525050565b611ad4611acf82612283565b6123c5565b82525050565b611ae3816122a7565b82525050565b6000611af482612170565b611afe8185612186565b9350611b0e818560208601612361565b611b1781612476565b840191505092915050565b6000611b2d82612170565b611b378185612197565b9350611b47818560208601612361565b611b5081612476565b840191505092915050565b6000611b6682612170565b611b7081856121a8565b9350611b80818560208601612361565b80840191505092915050565b611b958161230a565b82525050565b6000611ba68261217b565b611bb081856121b3565b9350611bc0818560208601612361565b611bc981612476565b840191505092915050565b6000611be16022836121b3565b9150611bec82612494565b604082019050919050565b6000611c04600283612197565b9150611c0f826124e3565b602082019050919050565b6000611c276026836121b3565b9150611c328261250c565b604082019050919050565b6000611c4a6008836121b3565b9150611c558261255b565b602082019050919050565b6000611c6d601d836121b3565b9150611c7882612584565b602082019050919050565b6000611c90602a836121b3565b9150611c9b826125ad565b604082019050919050565b6000611cb36036836121b3565b9150611cbe826125fc565b604082019050919050565b6000606083016000830151611ce16000860182611d37565b506020830151611cf46020860182611d37565b5060408301518482036040860152611d0c8282611ae9565b9150508091505092915050565b611d22816122b3565b82525050565b611d3181612340565b82525050565b611d40816122e1565b82525050565b611d4f816122e1565b82525050565b6000611d618284611ac3565b60148201915081905092915050565b6000611d7c8284611b5b565b915081905092915050565b6000602082019050611d9c6000830184611ab4565b92915050565b6000602082019050611db76000830184611aa5565b92915050565b6000604082019050611dd26000830185611ab4565b611ddf6020830184611ab4565b9392505050565b6000606082019050611dfb6000830186611ab4565b611e086020830185611ab4565b611e156040830184611d46565b949350505050565b6000604082019050611e326000830185611ab4565b611e3f6020830184611d19565b9392505050565b6000604082019050611e5b6000830185611ab4565b611e686020830184611d46565b9392505050565b6000602082019050611e846000830184611ada565b92915050565b60006020820190508181036000830152611ea48184611b9b565b905092915050565b60006020820190508181036000830152611ec581611bd4565b9050919050565b60006020820190508181036000830152611ee581611c1a565b9050919050565b600060e0820190508181036000830152611f0581611c3d565b9050611f146020830189611ab4565b611f216040830188611ab4565b611f2e6060830187611ab4565b611f3b6080830186611a96565b611f4860a0830185611d46565b611f5560c0830184611d19565b979650505050505050565b60006020820190508181036000830152611f7981611c60565b9050919050565b60006020820190508181036000830152611f9981611c83565b9050919050565b60006020820190508181036000830152611fb981611ca6565b9050919050565b6000606082019050611fd56000830186611d19565b611fe26020830185611ab4565b611fef6040830184611d46565b949350505050565b600060a08201905061200c6000830187611d19565b6120196020830186611b8c565b818103604083015261202b8185611b22565b9050818103606083015261203e81611bf7565b905081810360808301526120528184611cc9565b905095945050505050565b600061012082019050612073600083018c611d19565b612080602083018b611d28565b61208d604083018a611d28565b61209a6060830189611aa5565b6120a76080830188611d46565b6120b460a0830187611d46565b81810360c08301526120c68186611cc9565b905081810360e08301526120da8185611b22565b90508181036101008301526120ef8184611b22565b90509a9950505050505050505050565b60006020820190506121146000830184611d46565b92915050565b6000612124612135565b90506121308282612394565b919050565b6000604051905090565b600067ffffffffffffffff82111561215a57612159612447565b5b61216382612476565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006121cf826122e1565b91506121da836122e1565b9250826121ea576121e9612418565b5b828204905092915050565b6000612200826122e1565b915061220b836122e1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612244576122436123e9565b5b828202905092915050565b600061225a826122e1565b9150612265836122e1565b925082821015612278576122776123e9565b5b828203905092915050565b600061228e826122c1565b9050919050565b60006122a0826122c1565b9050919050565b60008115159050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006123038261231c565b9050919050565b6000612315826122eb565b9050919050565b60006123278261232e565b9050919050565b6000612339826122c1565b9050919050565b600061234b826122b3565b9050919050565b82818337600083830152505050565b60005b8381101561237f578082015181840152602081019050612364565b8381111561238e576000848401525b50505050565b61239d82612476565b810181811067ffffffffffffffff821117156123bc576123bb612447565b5b80604052505050565b60006123d0826123d7565b9050919050565b60006123e282612487565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b7f3078000000000000000000000000000000000000000000000000000000000000600082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f7374617267617465000000000000000000000000000000000000000000000000600082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b61265481612283565b811461265f57600080fd5b50565b61266b81612295565b811461267657600080fd5b50565b612682816122a7565b811461268d57600080fd5b50565b612699816122b3565b81146126a457600080fd5b50565b6126b0816122e1565b81146126bb57600080fd5b5056fea26469706673582212205925f021cf49e0781dce4a9176cd460ade79205f37ae12e8df85aecee8f9a52a64736f6c63430008040033",
							"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26F4 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x95 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x618C3F29 GT PUSH2 0x59 JUMPI DUP1 PUSH4 0x618C3F29 EQ PUSH2 0x182 JUMPI DUP1 PUSH4 0x6ACF5E3F EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x90F12364 EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0xAB8236F3 EQ PUSH2 0x22C JUMPI DUP1 PUSH4 0xC722A336 EQ PUSH2 0x255 JUMPI PUSH2 0x9C JUMP JUMPDEST DUP1 PUSH4 0x217AABB7 EQ PUSH2 0xA1 JUMPI DUP1 PUSH4 0x2AAD46E3 EQ PUSH2 0xCA JUMPI DUP1 PUSH4 0x42D910C6 EQ PUSH2 0xF3 JUMPI DUP1 PUSH4 0x498EE469 EQ PUSH2 0x130 JUMPI DUP1 PUSH4 0x4BE85C35 EQ PUSH2 0x159 JUMPI PUSH2 0x9C JUMP JUMPDEST CALLDATASIZE PUSH2 0x9C JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0x1A08 JUMP JUMPDEST PUSH2 0x271 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xEC SWAP2 SWAP1 PUSH2 0x1900 JUMP JUMPDEST PUSH2 0x2C9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xFF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x115 SWAP2 SWAP1 PUSH2 0x18B1 JUMP JUMPDEST PUSH2 0x37D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x127 SWAP2 SWAP1 PUSH2 0x20FF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x157 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x152 SWAP2 SWAP1 PUSH2 0x1822 JUMP JUMPDEST PUSH2 0x48F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x165 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x180 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17B SWAP2 SWAP1 PUSH2 0x1781 JUMP JUMPDEST PUSH2 0x740 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A4 SWAP2 SWAP1 PUSH2 0x1A08 JUMP JUMPDEST PUSH2 0x839 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x20FF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1887 JUMP JUMPDEST PUSH2 0x878 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1E6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x216 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x211 SWAP2 SWAP1 PUSH2 0x1900 JUMP JUMPDEST PUSH2 0xD75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x223 SWAP2 SWAP1 PUSH2 0x1E6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x238 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x253 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x24E SWAP2 SWAP1 PUSH2 0x194F JUMP JUMPDEST PUSH2 0xDF7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x26F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x26A SWAP2 SWAP1 PUSH2 0x17D3 JUMP JUMPDEST PUSH2 0xF75 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x279 PUSH2 0x103A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x283 PUSH2 0x10D5 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP PUSH32 0x45934903F6B10AFF9D3435B8362D284D95D14CA68E8554F05F04C7856A6003C0 DUP3 PUSH1 0x40 MLOAD PUSH2 0x2BD SWAP2 SWAP1 PUSH2 0x20FF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x2D1 PUSH2 0x103A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DB PUSH2 0x10D5 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 PUSH1 0x3 ADD PUSH1 0x0 DUP7 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH32 0x5A600144B7B71CA7EE988E17E7745E8D46EB24056D4818716BE29FA976393A8E DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x36F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1FC0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA512369 DUP7 PUSH1 0x1 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3B0 SWAP2 SWAP1 PUSH2 0x1D55 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH3 0x30D40 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3078000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x432 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1FF7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x449 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x45D 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 0x481 SWAP2 SWAP1 PUSH2 0x1A5A JUMP JUMPDEST POP SWAP1 POP DUP1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x4F6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x35BE3AC800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4FE PUSH2 0x103A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x508 PUSH2 0x10D5 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 DUP2 PUSH1 0x0 ADD PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH2 0xFFFF MUL NOT AND SWAP1 DUP4 PUSH2 0xFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x32 DUP2 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP PUSH2 0x597 PUSH1 0x1 PUSH20 0xA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48 PUSH1 0x1 PUSH2 0x2C9 JUMP JUMPDEST PUSH2 0x5B8 PUSH1 0x1 PUSH20 0xDAC17F958D2EE523A2206206994597C13D831EC7 PUSH1 0x2 PUSH2 0x2C9 JUMP JUMPDEST PUSH2 0x5D9 PUSH1 0x2 PUSH20 0x55D398326F99059FF775485246999027B3197955 PUSH1 0x2 PUSH2 0x2C9 JUMP JUMPDEST PUSH2 0x5FA PUSH1 0x2 PUSH20 0xE9E7CEA3DEDCA5984780BAFC599BD69ADD087D56 PUSH1 0x5 PUSH2 0x2C9 JUMP JUMPDEST PUSH2 0x61B PUSH1 0x6 PUSH20 0xB97EF9EF8734C71904D8002F8B6BC66DD9C48A6E PUSH1 0x1 PUSH2 0x2C9 JUMP JUMPDEST PUSH2 0x63C PUSH1 0x6 PUSH20 0x9702230A8EA53601F5CD2DC00FDBC13D4DF4A8C7 PUSH1 0x2 PUSH2 0x2C9 JUMP JUMPDEST PUSH2 0x65D PUSH1 0x9 PUSH20 0x2791BCA1F2DE4661ED88A30C99A7A9449AA84174 PUSH1 0x1 PUSH2 0x2C9 JUMP JUMPDEST PUSH2 0x67E PUSH1 0x9 PUSH20 0xC2132D05D31C914A87C6611C10748AEB04B58E8F PUSH1 0x2 PUSH2 0x2C9 JUMP JUMPDEST PUSH2 0x69F PUSH1 0xA PUSH20 0xFF970A61A04B1CA14834A43F5DE4533EBDDB5CC8 PUSH1 0x1 PUSH2 0x2C9 JUMP JUMPDEST PUSH2 0x6C0 PUSH1 0xA PUSH20 0xFD086BC7CD5C481DCC9C85EBE478A1C0B69FCBB9 PUSH1 0x2 PUSH2 0x2C9 JUMP JUMPDEST PUSH2 0x6E1 PUSH1 0xB PUSH20 0x7F5C764CBC14F9669B88837CA1490CCA17C31607 PUSH1 0x1 PUSH2 0x2C9 JUMP JUMPDEST PUSH2 0x702 PUSH1 0xC PUSH20 0x4068DA6C83AFCFA0E13BA15A6696662335D5B75 PUSH1 0x1 PUSH2 0x2C9 JUMP JUMPDEST PUSH32 0xC8EC31998A27444F477C01DE93C393769FD4FC017FB63163F71F8A8AB72CCD50 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x733 SWAP3 SWAP2 SWAP1 PUSH2 0x1E1D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x748 PUSH2 0x103A JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x7AF JUMPI PUSH1 0x40 MLOAD PUSH32 0x3911C65500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x7B9 PUSH2 0x10D5 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x9AC04272C4559BF7459414ABB5568DC1DF58AB649F0AF4AFD1510074F5CC2FEC DUP3 PUSH1 0x40 MLOAD PUSH2 0x82D SWAP2 SWAP1 PUSH2 0x1D87 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x844 PUSH2 0x10D5 JUMP JUMPDEST SWAP1 POP PUSH2 0x2710 DUP2 PUSH1 0x2 ADD SLOAD PUSH2 0x2710 PUSH2 0x85B SWAP2 SWAP1 PUSH2 0x224F JUMP JUMPDEST DUP5 PUSH2 0x866 SWAP2 SWAP1 PUSH2 0x21F5 JUMP JUMPDEST PUSH2 0x870 SWAP2 SWAP1 PUSH2 0x21C4 JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x883 PUSH2 0x1102 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP2 PUSH1 0x0 ADD SLOAD EQ ISZERO PUSH2 0x8C4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x29F745A700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x0 CALLVALUE GT PUSH2 0x908 JUMPI PUSH1 0x40 MLOAD PUSH32 0xB7586D1900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x0 ADD MLOAD GT PUSH2 0x946 JUMPI PUSH1 0x40 MLOAD PUSH32 0x2C5211C600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x9B5 JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0x40 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST DUP1 PUSH2 0x9F0 JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0xC0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST DUP1 PUSH2 0xA2B JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0xE0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0xA62 JUMPI PUSH1 0x40 MLOAD PUSH32 0x35BE3AC800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xA6C PUSH2 0x10D5 JUMP JUMPDEST SWAP1 POP PUSH2 0xA97 DUP2 PUSH1 0x0 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x80 ADD MLOAD PUSH2 0xFFFF AND PUSH2 0xD75 JUMP JUMPDEST PUSH2 0xACD JUMPI PUSH1 0x40 MLOAD PUSH32 0x7790CA9900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xAE8 DUP5 PUSH1 0x60 ADD MLOAD DUP6 PUSH1 0x40 ADD MLOAD DUP7 PUSH1 0xA0 ADD MLOAD PUSH2 0xFFFF AND PUSH2 0xD75 JUMP JUMPDEST PUSH2 0xB1E JUMPI PUSH1 0x40 MLOAD PUSH32 0x186C877F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xB2D DUP6 PUSH1 0x0 ADD MLOAD PUSH2 0x839 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP6 PUSH1 0xC0 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xB46 SWAP2 SWAP1 PUSH2 0x1DA2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0xB8C CALLER ADDRESS DUP9 PUSH1 0x0 ADD MLOAD DUP10 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x112F SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0xBE3 DUP4 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH1 0x0 ADD MLOAD DUP9 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x11B8 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP3 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x9FBF10FC CALLVALUE DUP9 PUSH1 0x60 ADD MLOAD DUP10 PUSH1 0x80 ADD MLOAD DUP11 PUSH1 0xA0 ADD MLOAD CALLER DUP13 PUSH1 0x0 ADD MLOAD DUP10 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH3 0x30D40 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3078000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 MSTORE POP DUP16 PUSH1 0xE0 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xCA3 SWAP2 SWAP1 PUSH2 0x1D55 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP12 PUSH1 0x40 MLOAD DUP12 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCD7 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x205D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCF0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD04 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x7A72E6F4A3D77F8A5A6C536A973421C5BF00107F9AEC7995661537673B8BE087 DUP7 PUSH1 0x20 ADD MLOAD DUP8 PUSH1 0x40 ADD MLOAD CALLER DUP10 PUSH1 0xC0 ADD MLOAD DUP11 PUSH1 0x0 ADD MLOAD DUP12 PUSH1 0x60 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0xD56 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1EEC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 SWAP5 POP POP POP POP PUSH1 0x0 DUP2 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xD80 PUSH2 0x10D5 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 PUSH1 0x3 ADD PUSH1 0x0 DUP8 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ PUSH2 0xDEA JUMPI PUSH1 0x0 PUSH2 0xDED JUMP JUMPDEST PUSH1 0x1 JUMPDEST SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE01 PUSH2 0x10D5 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xE8C JUMPI PUSH1 0x40 MLOAD PUSH32 0xDADE3C7100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xEA2 SWAP2 SWAP1 PUSH2 0x17AA JUMP JUMPDEST SWAP1 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP3 DUP7 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEDF SWAP3 SWAP2 SWAP1 PUSH2 0x1E46 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF0D 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 0xF31 SWAP2 SWAP1 PUSH2 0x185E JUMP JUMPDEST POP PUSH32 0x827E3293895509EF037B7438D4E009F37AD7B2562A14695D9DFD9CB065984218 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0xF63 SWAP3 SWAP2 SWAP1 PUSH2 0x1E46 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF7F PUSH2 0x1102 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP2 PUSH1 0x0 ADD SLOAD EQ ISZERO PUSH2 0xFC0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x29F745A700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP PUSH2 0xFD2 PUSH2 0x103A JUMP JUMPDEST PUSH2 0xFFD ADDRESS DUP4 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x11B8 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x102A ADDRESS DUP5 DUP5 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x112F SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1042 PUSH2 0x1316 JUMP JUMPDEST PUSH1 0x4 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x10D3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10CA SWAP1 PUSH2 0x1EAC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0xBAEADB48CBCF0176D6C6AC156B0140ABE0FB28A100A9A6A8B5DF37E55693B1C8 SWAP1 POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0xA65BB2F450488AB0858C00EDC14ABC5297769BF42ADB48CFB77752890E8B697B SWAP1 POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH2 0x11B2 DUP5 PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1150 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1DE6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x1343 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 EQ DUP1 PUSH2 0x1251 JUMPI POP PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDD62ED3E ADDRESS DUP6 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11FF SWAP3 SWAP2 SWAP1 PUSH2 0x1DBD JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1217 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x122B 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 0x124F SWAP2 SWAP1 PUSH2 0x1A31 JUMP JUMPDEST EQ JUMPDEST PUSH2 0x1290 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1287 SWAP1 PUSH2 0x1FA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1311 DUP4 PUSH4 0x95EA7B3 PUSH1 0xE0 SHL DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x12AF SWAP3 SWAP2 SWAP1 PUSH2 0x1E46 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x1343 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0xC8FCAD8DB84D3CC18B4C41D551EA0EE66DD599CDE068D998E57D5E09332C131C SWAP1 POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13A5 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x140A SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x1405 JUMPI DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x13C5 SWAP2 SWAP1 PUSH2 0x185E JUMP JUMPDEST PUSH2 0x1404 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13FB SWAP1 PUSH2 0x1F80 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1419 DUP5 DUP5 PUSH1 0x0 DUP6 PUSH2 0x1422 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x1467 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x145E SWAP1 PUSH2 0x1ECC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1470 DUP6 PUSH2 0x1536 JUMP JUMPDEST PUSH2 0x14AF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14A6 SWAP1 PUSH2 0x1F60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x14D8 SWAP2 SWAP1 PUSH2 0x1D70 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 0x1515 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 0x151A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x152A DUP3 DUP3 DUP7 PUSH2 0x1559 JUMP JUMPDEST SWAP3 POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x1569 JUMPI DUP3 SWAP1 POP PUSH2 0x15B9 JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD GT ISZERO PUSH2 0x157C JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15B0 SWAP2 SWAP1 PUSH2 0x1E8A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15D3 PUSH2 0x15CE DUP5 PUSH2 0x213F JUMP JUMPDEST PUSH2 0x211A JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x15EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x15F6 DUP5 DUP3 DUP6 PUSH2 0x2352 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x160D DUP2 PUSH2 0x264B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1622 DUP2 PUSH2 0x2662 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1637 DUP2 PUSH2 0x2662 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x164C DUP2 PUSH2 0x2679 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1663 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1673 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x15C0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x100 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x168F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x169A PUSH2 0x100 PUSH2 0x211A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x16AA DUP5 DUP3 DUP6 ADD PUSH2 0x1757 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x16BE DUP5 DUP3 DUP6 ADD PUSH2 0x15FE JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x16D2 DUP5 DUP3 DUP6 ADD PUSH2 0x15FE JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x16E6 DUP5 DUP3 DUP6 ADD PUSH2 0x1742 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x16FA DUP5 DUP3 DUP6 ADD PUSH2 0x1742 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x170E DUP5 DUP3 DUP6 ADD PUSH2 0x1742 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x1722 DUP5 DUP3 DUP6 ADD PUSH2 0x1613 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x1736 DUP5 DUP3 DUP6 ADD PUSH2 0x15FE JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1751 DUP2 PUSH2 0x2690 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1766 DUP2 PUSH2 0x26A7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x177B DUP2 PUSH2 0x26A7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1793 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x17A1 DUP5 DUP3 DUP6 ADD PUSH2 0x15FE JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x17CA DUP5 DUP3 DUP6 ADD PUSH2 0x1628 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x17E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x17F6 DUP7 DUP3 DUP8 ADD PUSH2 0x15FE JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1807 DUP7 DUP3 DUP8 ADD PUSH2 0x15FE JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1818 DUP7 DUP3 DUP8 ADD PUSH2 0x1757 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1835 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1843 DUP6 DUP3 DUP7 ADD PUSH2 0x15FE JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1854 DUP6 DUP3 DUP7 ADD PUSH2 0x1742 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1870 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x187E DUP5 DUP3 DUP6 ADD PUSH2 0x163D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x100 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x189A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x18A8 DUP5 DUP3 DUP6 ADD PUSH2 0x167C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x18C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x18D4 DUP7 DUP3 DUP8 ADD PUSH2 0x1742 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x18E5 DUP7 DUP3 DUP8 ADD PUSH2 0x15FE JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x18F6 DUP7 DUP3 DUP8 ADD PUSH2 0x15FE JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1915 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1923 DUP7 DUP3 DUP8 ADD PUSH2 0x1742 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1934 DUP7 DUP3 DUP8 ADD PUSH2 0x15FE JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1945 DUP7 DUP3 DUP8 ADD PUSH2 0x1757 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1968 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1976 DUP10 DUP3 DUP11 ADD PUSH2 0x1742 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1993 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x199F DUP10 DUP3 DUP11 ADD PUSH2 0x1652 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x19B0 DUP10 DUP3 DUP11 ADD PUSH2 0x1757 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x19C1 DUP10 DUP3 DUP11 ADD PUSH2 0x15FE JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0x19D2 DUP10 DUP3 DUP11 ADD PUSH2 0x1757 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19FB DUP10 DUP3 DUP11 ADD PUSH2 0x1652 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1A28 DUP5 DUP3 DUP6 ADD PUSH2 0x1757 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A43 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1A51 DUP5 DUP3 DUP6 ADD PUSH2 0x176C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A6D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1A7B DUP6 DUP3 DUP7 ADD PUSH2 0x176C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A8C DUP6 DUP3 DUP7 ADD PUSH2 0x176C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A9F DUP2 PUSH2 0x22F8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1AAE DUP2 PUSH2 0x2295 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1ABD DUP2 PUSH2 0x2283 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1AD4 PUSH2 0x1ACF DUP3 PUSH2 0x2283 JUMP JUMPDEST PUSH2 0x23C5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1AE3 DUP2 PUSH2 0x22A7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AF4 DUP3 PUSH2 0x2170 JUMP JUMPDEST PUSH2 0x1AFE DUP2 DUP6 PUSH2 0x2186 JUMP JUMPDEST SWAP4 POP PUSH2 0x1B0E DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2361 JUMP JUMPDEST PUSH2 0x1B17 DUP2 PUSH2 0x2476 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B2D DUP3 PUSH2 0x2170 JUMP JUMPDEST PUSH2 0x1B37 DUP2 DUP6 PUSH2 0x2197 JUMP JUMPDEST SWAP4 POP PUSH2 0x1B47 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2361 JUMP JUMPDEST PUSH2 0x1B50 DUP2 PUSH2 0x2476 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B66 DUP3 PUSH2 0x2170 JUMP JUMPDEST PUSH2 0x1B70 DUP2 DUP6 PUSH2 0x21A8 JUMP JUMPDEST SWAP4 POP PUSH2 0x1B80 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2361 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1B95 DUP2 PUSH2 0x230A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1BA6 DUP3 PUSH2 0x217B JUMP JUMPDEST PUSH2 0x1BB0 DUP2 DUP6 PUSH2 0x21B3 JUMP JUMPDEST SWAP4 POP PUSH2 0x1BC0 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2361 JUMP JUMPDEST PUSH2 0x1BC9 DUP2 PUSH2 0x2476 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1BE1 PUSH1 0x22 DUP4 PUSH2 0x21B3 JUMP JUMPDEST SWAP2 POP PUSH2 0x1BEC DUP3 PUSH2 0x2494 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C04 PUSH1 0x2 DUP4 PUSH2 0x2197 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C0F DUP3 PUSH2 0x24E3 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C27 PUSH1 0x26 DUP4 PUSH2 0x21B3 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C32 DUP3 PUSH2 0x250C JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C4A PUSH1 0x8 DUP4 PUSH2 0x21B3 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C55 DUP3 PUSH2 0x255B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C6D PUSH1 0x1D DUP4 PUSH2 0x21B3 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C78 DUP3 PUSH2 0x2584 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C90 PUSH1 0x2A DUP4 PUSH2 0x21B3 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C9B DUP3 PUSH2 0x25AD JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1CB3 PUSH1 0x36 DUP4 PUSH2 0x21B3 JUMP JUMPDEST SWAP2 POP PUSH2 0x1CBE DUP3 PUSH2 0x25FC JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0x1CE1 PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0x1D37 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x1CF4 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x1D37 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x1D0C DUP3 DUP3 PUSH2 0x1AE9 JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1D22 DUP2 PUSH2 0x22B3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1D31 DUP2 PUSH2 0x2340 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1D40 DUP2 PUSH2 0x22E1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1D4F DUP2 PUSH2 0x22E1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D61 DUP3 DUP5 PUSH2 0x1AC3 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D7C DUP3 DUP5 PUSH2 0x1B5B JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D9C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1AB4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1DB7 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1AA5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1DD2 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1AB4 JUMP JUMPDEST PUSH2 0x1DDF PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1AB4 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1DFB PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1AB4 JUMP JUMPDEST PUSH2 0x1E08 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1AB4 JUMP JUMPDEST PUSH2 0x1E15 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1D46 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E32 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1AB4 JUMP JUMPDEST PUSH2 0x1E3F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1D19 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E5B PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1AB4 JUMP JUMPDEST PUSH2 0x1E68 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1D46 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1E84 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1ADA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1EA4 DUP2 DUP5 PUSH2 0x1B9B JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1EC5 DUP2 PUSH2 0x1BD4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1EE5 DUP2 PUSH2 0x1C1A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xE0 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1F05 DUP2 PUSH2 0x1C3D JUMP JUMPDEST SWAP1 POP PUSH2 0x1F14 PUSH1 0x20 DUP4 ADD DUP10 PUSH2 0x1AB4 JUMP JUMPDEST PUSH2 0x1F21 PUSH1 0x40 DUP4 ADD DUP9 PUSH2 0x1AB4 JUMP JUMPDEST PUSH2 0x1F2E PUSH1 0x60 DUP4 ADD DUP8 PUSH2 0x1AB4 JUMP JUMPDEST PUSH2 0x1F3B PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x1A96 JUMP JUMPDEST PUSH2 0x1F48 PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x1D46 JUMP JUMPDEST PUSH2 0x1F55 PUSH1 0xC0 DUP4 ADD DUP5 PUSH2 0x1D19 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1F79 DUP2 PUSH2 0x1C60 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1F99 DUP2 PUSH2 0x1C83 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1FB9 DUP2 PUSH2 0x1CA6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1FD5 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1D19 JUMP JUMPDEST PUSH2 0x1FE2 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1AB4 JUMP JUMPDEST PUSH2 0x1FEF PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1D46 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x200C PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x1D19 JUMP JUMPDEST PUSH2 0x2019 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1B8C JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x202B DUP2 DUP6 PUSH2 0x1B22 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x203E DUP2 PUSH2 0x1BF7 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x2052 DUP2 DUP5 PUSH2 0x1CC9 JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP3 ADD SWAP1 POP PUSH2 0x2073 PUSH1 0x0 DUP4 ADD DUP13 PUSH2 0x1D19 JUMP JUMPDEST PUSH2 0x2080 PUSH1 0x20 DUP4 ADD DUP12 PUSH2 0x1D28 JUMP JUMPDEST PUSH2 0x208D PUSH1 0x40 DUP4 ADD DUP11 PUSH2 0x1D28 JUMP JUMPDEST PUSH2 0x209A PUSH1 0x60 DUP4 ADD DUP10 PUSH2 0x1AA5 JUMP JUMPDEST PUSH2 0x20A7 PUSH1 0x80 DUP4 ADD DUP9 PUSH2 0x1D46 JUMP JUMPDEST PUSH2 0x20B4 PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x1D46 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0xC0 DUP4 ADD MSTORE PUSH2 0x20C6 DUP2 DUP7 PUSH2 0x1CC9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x20DA DUP2 DUP6 PUSH2 0x1B22 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x20EF DUP2 DUP5 PUSH2 0x1B22 JUMP JUMPDEST SWAP1 POP SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2114 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1D46 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2124 PUSH2 0x2135 JUMP JUMPDEST SWAP1 POP PUSH2 0x2130 DUP3 DUP3 PUSH2 0x2394 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x215A JUMPI PUSH2 0x2159 PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH2 0x2163 DUP3 PUSH2 0x2476 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x21CF DUP3 PUSH2 0x22E1 JUMP JUMPDEST SWAP2 POP PUSH2 0x21DA DUP4 PUSH2 0x22E1 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x21EA JUMPI PUSH2 0x21E9 PUSH2 0x2418 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2200 DUP3 PUSH2 0x22E1 JUMP JUMPDEST SWAP2 POP PUSH2 0x220B DUP4 PUSH2 0x22E1 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2244 JUMPI PUSH2 0x2243 PUSH2 0x23E9 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x225A DUP3 PUSH2 0x22E1 JUMP JUMPDEST SWAP2 POP PUSH2 0x2265 DUP4 PUSH2 0x22E1 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x2278 JUMPI PUSH2 0x2277 PUSH2 0x23E9 JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228E DUP3 PUSH2 0x22C1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x22A0 DUP3 PUSH2 0x22C1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2303 DUP3 PUSH2 0x231C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2315 DUP3 PUSH2 0x22EB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2327 DUP3 PUSH2 0x232E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2339 DUP3 PUSH2 0x22C1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x234B DUP3 PUSH2 0x22B3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x237F JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2364 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x238E JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x239D DUP3 PUSH2 0x2476 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x23BC JUMPI PUSH2 0x23BB PUSH2 0x2447 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23D0 DUP3 PUSH2 0x23D7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23E2 DUP3 PUSH2 0x2487 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4C69624469616D6F6E643A204D75737420626520636F6E7472616374206F776E PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6572000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x3078000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x722063616C6C0000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x7374617267617465000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F74207375636365656400000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x5361666545524332303A20617070726F76652066726F6D206E6F6E2D7A65726F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x20746F206E6F6E2D7A65726F20616C6C6F77616E636500000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x2654 DUP2 PUSH2 0x2283 JUMP JUMPDEST DUP2 EQ PUSH2 0x265F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x266B DUP2 PUSH2 0x2295 JUMP JUMPDEST DUP2 EQ PUSH2 0x2676 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x2682 DUP2 PUSH2 0x22A7 JUMP JUMPDEST DUP2 EQ PUSH2 0x268D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x2699 DUP2 PUSH2 0x22B3 JUMP JUMPDEST DUP2 EQ PUSH2 0x26A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x26B0 DUP2 PUSH2 0x22E1 JUMP JUMPDEST DUP2 EQ PUSH2 0x26BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MSIZE 0x25 CREATE 0x21 0xCF 0x49 0xE0 PUSH25 0x1DCE4A9176CD460ADE79205F37AE12E8DF85AECEE8F9A52A64 PUSH20 0x6F6C634300080400330000000000000000000000 ",
							"sourceMap": "910:9349:6:-:0;;;;;;;;;;;;;;;;;;;"
						},
						"deployedBytecode": {
							"generatedSources": [
								{
									"ast": {
										"nodeType": "YulBlock",
										"src": "0:31852:13",
										"statements": [
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "90:260:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "100:74:13",
															"value": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "length",
																				"nodeType": "YulIdentifier",
																				"src": "166:6:13"
																			}
																		],
																		"functionName": {
																			"name": "array_allocation_size_t_bytes_memory_ptr",
																			"nodeType": "YulIdentifier",
																			"src": "125:40:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "125:48:13"
																	}
																],
																"functionName": {
																	"name": "allocate_memory",
																	"nodeType": "YulIdentifier",
																	"src": "109:15:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "109:65:13"
															},
															"variableNames": [
																{
																	"name": "array",
																	"nodeType": "YulIdentifier",
																	"src": "100:5:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "array",
																		"nodeType": "YulIdentifier",
																		"src": "190:5:13"
																	},
																	{
																		"name": "length",
																		"nodeType": "YulIdentifier",
																		"src": "197:6:13"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "183:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "183:21:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "183:21:13"
														},
														{
															"nodeType": "YulVariableDeclaration",
															"src": "213:27:13",
															"value": {
																"arguments": [
																	{
																		"name": "array",
																		"nodeType": "YulIdentifier",
																		"src": "228:5:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "235:4:13",
																		"type": "",
																		"value": "0x20"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "224:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "224:16:13"
															},
															"variables": [
																{
																	"name": "dst",
																	"nodeType": "YulTypedName",
																	"src": "217:3:13",
																	"type": ""
																}
															]
														},
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "278:16:13",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "287:1:13",
																					"type": "",
																					"value": "0"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "290:1:13",
																					"type": "",
																					"value": "0"
																				}
																			],
																			"functionName": {
																				"name": "revert",
																				"nodeType": "YulIdentifier",
																				"src": "280:6:13"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "280:12:13"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "280:12:13"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "src",
																				"nodeType": "YulIdentifier",
																				"src": "259:3:13"
																			},
																			{
																				"name": "length",
																				"nodeType": "YulIdentifier",
																				"src": "264:6:13"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "255:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "255:16:13"
																	},
																	{
																		"name": "end",
																		"nodeType": "YulIdentifier",
																		"src": "273:3:13"
																	}
																],
																"functionName": {
																	"name": "gt",
																	"nodeType": "YulIdentifier",
																	"src": "252:2:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "252:25:13"
															},
															"nodeType": "YulIf",
															"src": "249:2:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "src",
																		"nodeType": "YulIdentifier",
																		"src": "327:3:13"
																	},
																	{
																		"name": "dst",
																		"nodeType": "YulIdentifier",
																		"src": "332:3:13"
																	},
																	{
																		"name": "length",
																		"nodeType": "YulIdentifier",
																		"src": "337:6:13"
																	}
																],
																"functionName": {
																	"name": "copy_calldata_to_memory",
																	"nodeType": "YulIdentifier",
																	"src": "303:23:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "303:41:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "303:41:13"
														}
													]
												},
												"name": "abi_decode_available_length_t_bytes_memory_ptr",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "src",
														"nodeType": "YulTypedName",
														"src": "63:3:13",
														"type": ""
													},
													{
														"name": "length",
														"nodeType": "YulTypedName",
														"src": "68:6:13",
														"type": ""
													},
													{
														"name": "end",
														"nodeType": "YulTypedName",
														"src": "76:3:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "array",
														"nodeType": "YulTypedName",
														"src": "84:5:13",
														"type": ""
													}
												],
												"src": "7:343:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "408:87:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "418:29:13",
															"value": {
																"arguments": [
																	{
																		"name": "offset",
																		"nodeType": "YulIdentifier",
																		"src": "440:6:13"
																	}
																],
																"functionName": {
																	"name": "calldataload",
																	"nodeType": "YulIdentifier",
																	"src": "427:12:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "427:20:13"
															},
															"variableNames": [
																{
																	"name": "value",
																	"nodeType": "YulIdentifier",
																	"src": "418:5:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "483:5:13"
																	}
																],
																"functionName": {
																	"name": "validator_revert_t_address",
																	"nodeType": "YulIdentifier",
																	"src": "456:26:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "456:33:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "456:33:13"
														}
													]
												},
												"name": "abi_decode_t_address",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "offset",
														"nodeType": "YulTypedName",
														"src": "386:6:13",
														"type": ""
													},
													{
														"name": "end",
														"nodeType": "YulTypedName",
														"src": "394:3:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "402:5:13",
														"type": ""
													}
												],
												"src": "356:139:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "561:95:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "571:29:13",
															"value": {
																"arguments": [
																	{
																		"name": "offset",
																		"nodeType": "YulIdentifier",
																		"src": "593:6:13"
																	}
																],
																"functionName": {
																	"name": "calldataload",
																	"nodeType": "YulIdentifier",
																	"src": "580:12:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "580:20:13"
															},
															"variableNames": [
																{
																	"name": "value",
																	"nodeType": "YulIdentifier",
																	"src": "571:5:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "644:5:13"
																	}
																],
																"functionName": {
																	"name": "validator_revert_t_address_payable",
																	"nodeType": "YulIdentifier",
																	"src": "609:34:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "609:41:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "609:41:13"
														}
													]
												},
												"name": "abi_decode_t_address_payable",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "offset",
														"nodeType": "YulTypedName",
														"src": "539:6:13",
														"type": ""
													},
													{
														"name": "end",
														"nodeType": "YulTypedName",
														"src": "547:3:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "555:5:13",
														"type": ""
													}
												],
												"src": "501:155:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "733:88:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "743:22:13",
															"value": {
																"arguments": [
																	{
																		"name": "offset",
																		"nodeType": "YulIdentifier",
																		"src": "758:6:13"
																	}
																],
																"functionName": {
																	"name": "mload",
																	"nodeType": "YulIdentifier",
																	"src": "752:5:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "752:13:13"
															},
															"variableNames": [
																{
																	"name": "value",
																	"nodeType": "YulIdentifier",
																	"src": "743:5:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "809:5:13"
																	}
																],
																"functionName": {
																	"name": "validator_revert_t_address_payable",
																	"nodeType": "YulIdentifier",
																	"src": "774:34:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "774:41:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "774:41:13"
														}
													]
												},
												"name": "abi_decode_t_address_payable_fromMemory",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "offset",
														"nodeType": "YulTypedName",
														"src": "711:6:13",
														"type": ""
													},
													{
														"name": "end",
														"nodeType": "YulTypedName",
														"src": "719:3:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "727:5:13",
														"type": ""
													}
												],
												"src": "662:159:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "887:77:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "897:22:13",
															"value": {
																"arguments": [
																	{
																		"name": "offset",
																		"nodeType": "YulIdentifier",
																		"src": "912:6:13"
																	}
																],
																"functionName": {
																	"name": "mload",
																	"nodeType": "YulIdentifier",
																	"src": "906:5:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "906:13:13"
															},
															"variableNames": [
																{
																	"name": "value",
																	"nodeType": "YulIdentifier",
																	"src": "897:5:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "952:5:13"
																	}
																],
																"functionName": {
																	"name": "validator_revert_t_bool",
																	"nodeType": "YulIdentifier",
																	"src": "928:23:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "928:30:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "928:30:13"
														}
													]
												},
												"name": "abi_decode_t_bool_fromMemory",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "offset",
														"nodeType": "YulTypedName",
														"src": "865:6:13",
														"type": ""
													},
													{
														"name": "end",
														"nodeType": "YulTypedName",
														"src": "873:3:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "881:5:13",
														"type": ""
													}
												],
												"src": "827:137:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "1044:210:13",
													"statements": [
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "1093:16:13",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "1102:1:13",
																					"type": "",
																					"value": "0"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "1105:1:13",
																					"type": "",
																					"value": "0"
																				}
																			],
																			"functionName": {
																				"name": "revert",
																				"nodeType": "YulIdentifier",
																				"src": "1095:6:13"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "1095:12:13"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "1095:12:13"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "offset",
																						"nodeType": "YulIdentifier",
																						"src": "1072:6:13"
																					},
																					{
																						"kind": "number",
																						"nodeType": "YulLiteral",
																						"src": "1080:4:13",
																						"type": "",
																						"value": "0x1f"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "1068:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "1068:17:13"
																			},
																			{
																				"name": "end",
																				"nodeType": "YulIdentifier",
																				"src": "1087:3:13"
																			}
																		],
																		"functionName": {
																			"name": "slt",
																			"nodeType": "YulIdentifier",
																			"src": "1064:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "1064:27:13"
																	}
																],
																"functionName": {
																	"name": "iszero",
																	"nodeType": "YulIdentifier",
																	"src": "1057:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "1057:35:13"
															},
															"nodeType": "YulIf",
															"src": "1054:2:13"
														},
														{
															"nodeType": "YulVariableDeclaration",
															"src": "1118:34:13",
															"value": {
																"arguments": [
																	{
																		"name": "offset",
																		"nodeType": "YulIdentifier",
																		"src": "1145:6:13"
																	}
																],
																"functionName": {
																	"name": "calldataload",
																	"nodeType": "YulIdentifier",
																	"src": "1132:12:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "1132:20:13"
															},
															"variables": [
																{
																	"name": "length",
																	"nodeType": "YulTypedName",
																	"src": "1122:6:13",
																	"type": ""
																}
															]
														},
														{
															"nodeType": "YulAssignment",
															"src": "1161:87:13",
															"value": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "offset",
																				"nodeType": "YulIdentifier",
																				"src": "1221:6:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "1229:4:13",
																				"type": "",
																				"value": "0x20"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "1217:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "1217:17:13"
																	},
																	{
																		"name": "length",
																		"nodeType": "YulIdentifier",
																		"src": "1236:6:13"
																	},
																	{
																		"name": "end",
																		"nodeType": "YulIdentifier",
																		"src": "1244:3:13"
																	}
																],
																"functionName": {
																	"name": "abi_decode_available_length_t_bytes_memory_ptr",
																	"nodeType": "YulIdentifier",
																	"src": "1170:46:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "1170:78:13"
															},
															"variableNames": [
																{
																	"name": "array",
																	"nodeType": "YulIdentifier",
																	"src": "1161:5:13"
																}
															]
														}
													]
												},
												"name": "abi_decode_t_bytes_memory_ptr",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "offset",
														"nodeType": "YulTypedName",
														"src": "1022:6:13",
														"type": ""
													},
													{
														"name": "end",
														"nodeType": "YulTypedName",
														"src": "1030:3:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "array",
														"nodeType": "YulTypedName",
														"src": "1038:5:13",
														"type": ""
													}
												],
												"src": "983:271:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "1385:1443:13",
													"statements": [
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "1431:16:13",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "1440:1:13",
																					"type": "",
																					"value": "0"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "1443:1:13",
																					"type": "",
																					"value": "0"
																				}
																			],
																			"functionName": {
																				"name": "revert",
																				"nodeType": "YulIdentifier",
																				"src": "1433:6:13"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "1433:12:13"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "1433:12:13"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "end",
																				"nodeType": "YulIdentifier",
																				"src": "1406:3:13"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "1411:9:13"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "1402:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "1402:19:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "1423:6:13",
																		"type": "",
																		"value": "0x0100"
																	}
																],
																"functionName": {
																	"name": "slt",
																	"nodeType": "YulIdentifier",
																	"src": "1398:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "1398:32:13"
															},
															"nodeType": "YulIf",
															"src": "1395:2:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "1456:32:13",
															"value": {
																"arguments": [
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "1481:6:13",
																		"type": "",
																		"value": "0x0100"
																	}
																],
																"functionName": {
																	"name": "allocate_memory",
																	"nodeType": "YulIdentifier",
																	"src": "1465:15:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "1465:23:13"
															},
															"variableNames": [
																{
																	"name": "value",
																	"nodeType": "YulIdentifier",
																	"src": "1456:5:13"
																}
															]
														},
														{
															"nodeType": "YulBlock",
															"src": "1498:149:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "1532:15:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "1546:1:13",
																		"type": "",
																		"value": "0"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "1536:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"expression": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "value",
																						"nodeType": "YulIdentifier",
																						"src": "1572:5:13"
																					},
																					{
																						"kind": "number",
																						"nodeType": "YulLiteral",
																						"src": "1579:4:13",
																						"type": "",
																						"value": "0x00"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "1568:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "1568:16:13"
																			},
																			{
																				"arguments": [
																					{
																						"arguments": [
																							{
																								"name": "headStart",
																								"nodeType": "YulIdentifier",
																								"src": "1611:9:13"
																							},
																							{
																								"name": "offset",
																								"nodeType": "YulIdentifier",
																								"src": "1622:6:13"
																							}
																						],
																						"functionName": {
																							"name": "add",
																							"nodeType": "YulIdentifier",
																							"src": "1607:3:13"
																						},
																						"nodeType": "YulFunctionCall",
																						"src": "1607:22:13"
																					},
																					{
																						"name": "end",
																						"nodeType": "YulIdentifier",
																						"src": "1631:3:13"
																					}
																				],
																				"functionName": {
																					"name": "abi_decode_t_uint256",
																					"nodeType": "YulIdentifier",
																					"src": "1586:20:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "1586:49:13"
																			}
																		],
																		"functionName": {
																			"name": "mstore",
																			"nodeType": "YulIdentifier",
																			"src": "1561:6:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "1561:75:13"
																	},
																	"nodeType": "YulExpressionStatement",
																	"src": "1561:75:13"
																}
															]
														},
														{
															"nodeType": "YulBlock",
															"src": "1657:156:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "1697:16:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "1711:2:13",
																		"type": "",
																		"value": "32"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "1701:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"expression": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "value",
																						"nodeType": "YulIdentifier",
																						"src": "1738:5:13"
																					},
																					{
																						"kind": "number",
																						"nodeType": "YulLiteral",
																						"src": "1745:4:13",
																						"type": "",
																						"value": "0x20"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "1734:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "1734:16:13"
																			},
																			{
																				"arguments": [
																					{
																						"arguments": [
																							{
																								"name": "headStart",
																								"nodeType": "YulIdentifier",
																								"src": "1777:9:13"
																							},
																							{
																								"name": "offset",
																								"nodeType": "YulIdentifier",
																								"src": "1788:6:13"
																							}
																						],
																						"functionName": {
																							"name": "add",
																							"nodeType": "YulIdentifier",
																							"src": "1773:3:13"
																						},
																						"nodeType": "YulFunctionCall",
																						"src": "1773:22:13"
																					},
																					{
																						"name": "end",
																						"nodeType": "YulIdentifier",
																						"src": "1797:3:13"
																					}
																				],
																				"functionName": {
																					"name": "abi_decode_t_address",
																					"nodeType": "YulIdentifier",
																					"src": "1752:20:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "1752:49:13"
																			}
																		],
																		"functionName": {
																			"name": "mstore",
																			"nodeType": "YulIdentifier",
																			"src": "1727:6:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "1727:75:13"
																	},
																	"nodeType": "YulExpressionStatement",
																	"src": "1727:75:13"
																}
															]
														},
														{
															"nodeType": "YulBlock",
															"src": "1823:154:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "1861:16:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "1875:2:13",
																		"type": "",
																		"value": "64"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "1865:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"expression": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "value",
																						"nodeType": "YulIdentifier",
																						"src": "1902:5:13"
																					},
																					{
																						"kind": "number",
																						"nodeType": "YulLiteral",
																						"src": "1909:4:13",
																						"type": "",
																						"value": "0x40"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "1898:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "1898:16:13"
																			},
																			{
																				"arguments": [
																					{
																						"arguments": [
																							{
																								"name": "headStart",
																								"nodeType": "YulIdentifier",
																								"src": "1941:9:13"
																							},
																							{
																								"name": "offset",
																								"nodeType": "YulIdentifier",
																								"src": "1952:6:13"
																							}
																						],
																						"functionName": {
																							"name": "add",
																							"nodeType": "YulIdentifier",
																							"src": "1937:3:13"
																						},
																						"nodeType": "YulFunctionCall",
																						"src": "1937:22:13"
																					},
																					{
																						"name": "end",
																						"nodeType": "YulIdentifier",
																						"src": "1961:3:13"
																					}
																				],
																				"functionName": {
																					"name": "abi_decode_t_address",
																					"nodeType": "YulIdentifier",
																					"src": "1916:20:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "1916:49:13"
																			}
																		],
																		"functionName": {
																			"name": "mstore",
																			"nodeType": "YulIdentifier",
																			"src": "1891:6:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "1891:75:13"
																	},
																	"nodeType": "YulExpressionStatement",
																	"src": "1891:75:13"
																}
															]
														},
														{
															"nodeType": "YulBlock",
															"src": "1987:156:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "2028:16:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "2042:2:13",
																		"type": "",
																		"value": "96"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "2032:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"expression": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "value",
																						"nodeType": "YulIdentifier",
																						"src": "2069:5:13"
																					},
																					{
																						"kind": "number",
																						"nodeType": "YulLiteral",
																						"src": "2076:4:13",
																						"type": "",
																						"value": "0x60"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "2065:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "2065:16:13"
																			},
																			{
																				"arguments": [
																					{
																						"arguments": [
																							{
																								"name": "headStart",
																								"nodeType": "YulIdentifier",
																								"src": "2107:9:13"
																							},
																							{
																								"name": "offset",
																								"nodeType": "YulIdentifier",
																								"src": "2118:6:13"
																							}
																						],
																						"functionName": {
																							"name": "add",
																							"nodeType": "YulIdentifier",
																							"src": "2103:3:13"
																						},
																						"nodeType": "YulFunctionCall",
																						"src": "2103:22:13"
																					},
																					{
																						"name": "end",
																						"nodeType": "YulIdentifier",
																						"src": "2127:3:13"
																					}
																				],
																				"functionName": {
																					"name": "abi_decode_t_uint16",
																					"nodeType": "YulIdentifier",
																					"src": "2083:19:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "2083:48:13"
																			}
																		],
																		"functionName": {
																			"name": "mstore",
																			"nodeType": "YulIdentifier",
																			"src": "2058:6:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "2058:74:13"
																	},
																	"nodeType": "YulExpressionStatement",
																	"src": "2058:74:13"
																}
															]
														},
														{
															"nodeType": "YulBlock",
															"src": "2153:156:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "2193:17:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "2207:3:13",
																		"type": "",
																		"value": "128"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "2197:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"expression": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "value",
																						"nodeType": "YulIdentifier",
																						"src": "2235:5:13"
																					},
																					{
																						"kind": "number",
																						"nodeType": "YulLiteral",
																						"src": "2242:4:13",
																						"type": "",
																						"value": "0x80"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "2231:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "2231:16:13"
																			},
																			{
																				"arguments": [
																					{
																						"arguments": [
																							{
																								"name": "headStart",
																								"nodeType": "YulIdentifier",
																								"src": "2273:9:13"
																							},
																							{
																								"name": "offset",
																								"nodeType": "YulIdentifier",
																								"src": "2284:6:13"
																							}
																						],
																						"functionName": {
																							"name": "add",
																							"nodeType": "YulIdentifier",
																							"src": "2269:3:13"
																						},
																						"nodeType": "YulFunctionCall",
																						"src": "2269:22:13"
																					},
																					{
																						"name": "end",
																						"nodeType": "YulIdentifier",
																						"src": "2293:3:13"
																					}
																				],
																				"functionName": {
																					"name": "abi_decode_t_uint16",
																					"nodeType": "YulIdentifier",
																					"src": "2249:19:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "2249:48:13"
																			}
																		],
																		"functionName": {
																			"name": "mstore",
																			"nodeType": "YulIdentifier",
																			"src": "2224:6:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "2224:74:13"
																	},
																	"nodeType": "YulExpressionStatement",
																	"src": "2224:74:13"
																}
															]
														},
														{
															"nodeType": "YulBlock",
															"src": "2319:156:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "2359:17:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "2373:3:13",
																		"type": "",
																		"value": "160"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "2363:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"expression": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "value",
																						"nodeType": "YulIdentifier",
																						"src": "2401:5:13"
																					},
																					{
																						"kind": "number",
																						"nodeType": "YulLiteral",
																						"src": "2408:4:13",
																						"type": "",
																						"value": "0xa0"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "2397:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "2397:16:13"
																			},
																			{
																				"arguments": [
																					{
																						"arguments": [
																							{
																								"name": "headStart",
																								"nodeType": "YulIdentifier",
																								"src": "2439:9:13"
																							},
																							{
																								"name": "offset",
																								"nodeType": "YulIdentifier",
																								"src": "2450:6:13"
																							}
																						],
																						"functionName": {
																							"name": "add",
																							"nodeType": "YulIdentifier",
																							"src": "2435:3:13"
																						},
																						"nodeType": "YulFunctionCall",
																						"src": "2435:22:13"
																					},
																					{
																						"name": "end",
																						"nodeType": "YulIdentifier",
																						"src": "2459:3:13"
																					}
																				],
																				"functionName": {
																					"name": "abi_decode_t_uint16",
																					"nodeType": "YulIdentifier",
																					"src": "2415:19:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "2415:48:13"
																			}
																		],
																		"functionName": {
																			"name": "mstore",
																			"nodeType": "YulIdentifier",
																			"src": "2390:6:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "2390:74:13"
																	},
																	"nodeType": "YulExpressionStatement",
																	"src": "2390:74:13"
																}
															]
														},
														{
															"nodeType": "YulBlock",
															"src": "2485:158:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "2518:17:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "2532:3:13",
																		"type": "",
																		"value": "192"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "2522:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"expression": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "value",
																						"nodeType": "YulIdentifier",
																						"src": "2560:5:13"
																					},
																					{
																						"kind": "number",
																						"nodeType": "YulLiteral",
																						"src": "2567:4:13",
																						"type": "",
																						"value": "0xc0"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "2556:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "2556:16:13"
																			},
																			{
																				"arguments": [
																					{
																						"arguments": [
																							{
																								"name": "headStart",
																								"nodeType": "YulIdentifier",
																								"src": "2607:9:13"
																							},
																							{
																								"name": "offset",
																								"nodeType": "YulIdentifier",
																								"src": "2618:6:13"
																							}
																						],
																						"functionName": {
																							"name": "add",
																							"nodeType": "YulIdentifier",
																							"src": "2603:3:13"
																						},
																						"nodeType": "YulFunctionCall",
																						"src": "2603:22:13"
																					},
																					{
																						"name": "end",
																						"nodeType": "YulIdentifier",
																						"src": "2627:3:13"
																					}
																				],
																				"functionName": {
																					"name": "abi_decode_t_address_payable",
																					"nodeType": "YulIdentifier",
																					"src": "2574:28:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "2574:57:13"
																			}
																		],
																		"functionName": {
																			"name": "mstore",
																			"nodeType": "YulIdentifier",
																			"src": "2549:6:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "2549:83:13"
																	},
																	"nodeType": "YulExpressionStatement",
																	"src": "2549:83:13"
																}
															]
														},
														{
															"nodeType": "YulBlock",
															"src": "2653:168:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "2704:17:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "2718:3:13",
																		"type": "",
																		"value": "224"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "2708:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"expression": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "value",
																						"nodeType": "YulIdentifier",
																						"src": "2746:5:13"
																					},
																					{
																						"kind": "number",
																						"nodeType": "YulLiteral",
																						"src": "2753:4:13",
																						"type": "",
																						"value": "0xe0"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "2742:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "2742:16:13"
																			},
																			{
																				"arguments": [
																					{
																						"arguments": [
																							{
																								"name": "headStart",
																								"nodeType": "YulIdentifier",
																								"src": "2785:9:13"
																							},
																							{
																								"name": "offset",
																								"nodeType": "YulIdentifier",
																								"src": "2796:6:13"
																							}
																						],
																						"functionName": {
																							"name": "add",
																							"nodeType": "YulIdentifier",
																							"src": "2781:3:13"
																						},
																						"nodeType": "YulFunctionCall",
																						"src": "2781:22:13"
																					},
																					{
																						"name": "end",
																						"nodeType": "YulIdentifier",
																						"src": "2805:3:13"
																					}
																				],
																				"functionName": {
																					"name": "abi_decode_t_address",
																					"nodeType": "YulIdentifier",
																					"src": "2760:20:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "2760:49:13"
																			}
																		],
																		"functionName": {
																			"name": "mstore",
																			"nodeType": "YulIdentifier",
																			"src": "2735:6:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "2735:75:13"
																	},
																	"nodeType": "YulExpressionStatement",
																	"src": "2735:75:13"
																}
															]
														}
													]
												},
												"name": "abi_decode_t_struct$_StargateData_$846_memory_ptr",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "1360:9:13",
														"type": ""
													},
													{
														"name": "end",
														"nodeType": "YulTypedName",
														"src": "1371:3:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "1379:5:13",
														"type": ""
													}
												],
												"src": "1301:1527:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "2885:86:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "2895:29:13",
															"value": {
																"arguments": [
																	{
																		"name": "offset",
																		"nodeType": "YulIdentifier",
																		"src": "2917:6:13"
																	}
																],
																"functionName": {
																	"name": "calldataload",
																	"nodeType": "YulIdentifier",
																	"src": "2904:12:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "2904:20:13"
															},
															"variableNames": [
																{
																	"name": "value",
																	"nodeType": "YulIdentifier",
																	"src": "2895:5:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "2959:5:13"
																	}
																],
																"functionName": {
																	"name": "validator_revert_t_uint16",
																	"nodeType": "YulIdentifier",
																	"src": "2933:25:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "2933:32:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "2933:32:13"
														}
													]
												},
												"name": "abi_decode_t_uint16",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "offset",
														"nodeType": "YulTypedName",
														"src": "2863:6:13",
														"type": ""
													},
													{
														"name": "end",
														"nodeType": "YulTypedName",
														"src": "2871:3:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "2879:5:13",
														"type": ""
													}
												],
												"src": "2834:137:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "3029:87:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "3039:29:13",
															"value": {
																"arguments": [
																	{
																		"name": "offset",
																		"nodeType": "YulIdentifier",
																		"src": "3061:6:13"
																	}
																],
																"functionName": {
																	"name": "calldataload",
																	"nodeType": "YulIdentifier",
																	"src": "3048:12:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "3048:20:13"
															},
															"variableNames": [
																{
																	"name": "value",
																	"nodeType": "YulIdentifier",
																	"src": "3039:5:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "3104:5:13"
																	}
																],
																"functionName": {
																	"name": "validator_revert_t_uint256",
																	"nodeType": "YulIdentifier",
																	"src": "3077:26:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "3077:33:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "3077:33:13"
														}
													]
												},
												"name": "abi_decode_t_uint256",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "offset",
														"nodeType": "YulTypedName",
														"src": "3007:6:13",
														"type": ""
													},
													{
														"name": "end",
														"nodeType": "YulTypedName",
														"src": "3015:3:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "3023:5:13",
														"type": ""
													}
												],
												"src": "2977:139:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "3185:80:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "3195:22:13",
															"value": {
																"arguments": [
																	{
																		"name": "offset",
																		"nodeType": "YulIdentifier",
																		"src": "3210:6:13"
																	}
																],
																"functionName": {
																	"name": "mload",
																	"nodeType": "YulIdentifier",
																	"src": "3204:5:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "3204:13:13"
															},
															"variableNames": [
																{
																	"name": "value",
																	"nodeType": "YulIdentifier",
																	"src": "3195:5:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "3253:5:13"
																	}
																],
																"functionName": {
																	"name": "validator_revert_t_uint256",
																	"nodeType": "YulIdentifier",
																	"src": "3226:26:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "3226:33:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "3226:33:13"
														}
													]
												},
												"name": "abi_decode_t_uint256_fromMemory",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "offset",
														"nodeType": "YulTypedName",
														"src": "3163:6:13",
														"type": ""
													},
													{
														"name": "end",
														"nodeType": "YulTypedName",
														"src": "3171:3:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "3179:5:13",
														"type": ""
													}
												],
												"src": "3122:143:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "3337:196:13",
													"statements": [
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "3383:16:13",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "3392:1:13",
																					"type": "",
																					"value": "0"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "3395:1:13",
																					"type": "",
																					"value": "0"
																				}
																			],
																			"functionName": {
																				"name": "revert",
																				"nodeType": "YulIdentifier",
																				"src": "3385:6:13"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "3385:12:13"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "3385:12:13"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "3358:7:13"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "3367:9:13"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "3354:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "3354:23:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "3379:2:13",
																		"type": "",
																		"value": "32"
																	}
																],
																"functionName": {
																	"name": "slt",
																	"nodeType": "YulIdentifier",
																	"src": "3350:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "3350:32:13"
															},
															"nodeType": "YulIf",
															"src": "3347:2:13"
														},
														{
															"nodeType": "YulBlock",
															"src": "3409:117:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "3424:15:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "3438:1:13",
																		"type": "",
																		"value": "0"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "3428:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "3453:63:13",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "headStart",
																						"nodeType": "YulIdentifier",
																						"src": "3488:9:13"
																					},
																					{
																						"name": "offset",
																						"nodeType": "YulIdentifier",
																						"src": "3499:6:13"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "3484:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "3484:22:13"
																			},
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "3508:7:13"
																			}
																		],
																		"functionName": {
																			"name": "abi_decode_t_address",
																			"nodeType": "YulIdentifier",
																			"src": "3463:20:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "3463:53:13"
																	},
																	"variableNames": [
																		{
																			"name": "value0",
																			"nodeType": "YulIdentifier",
																			"src": "3453:6:13"
																		}
																	]
																}
															]
														}
													]
												},
												"name": "abi_decode_tuple_t_address",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "3307:9:13",
														"type": ""
													},
													{
														"name": "dataEnd",
														"nodeType": "YulTypedName",
														"src": "3318:7:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "3330:6:13",
														"type": ""
													}
												],
												"src": "3271:262:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "3624:215:13",
													"statements": [
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "3670:16:13",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "3679:1:13",
																					"type": "",
																					"value": "0"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "3682:1:13",
																					"type": "",
																					"value": "0"
																				}
																			],
																			"functionName": {
																				"name": "revert",
																				"nodeType": "YulIdentifier",
																				"src": "3672:6:13"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "3672:12:13"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "3672:12:13"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "3645:7:13"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "3654:9:13"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "3641:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "3641:23:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "3666:2:13",
																		"type": "",
																		"value": "32"
																	}
																],
																"functionName": {
																	"name": "slt",
																	"nodeType": "YulIdentifier",
																	"src": "3637:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "3637:32:13"
															},
															"nodeType": "YulIf",
															"src": "3634:2:13"
														},
														{
															"nodeType": "YulBlock",
															"src": "3696:136:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "3711:15:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "3725:1:13",
																		"type": "",
																		"value": "0"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "3715:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "3740:82:13",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "headStart",
																						"nodeType": "YulIdentifier",
																						"src": "3794:9:13"
																					},
																					{
																						"name": "offset",
																						"nodeType": "YulIdentifier",
																						"src": "3805:6:13"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "3790:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "3790:22:13"
																			},
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "3814:7:13"
																			}
																		],
																		"functionName": {
																			"name": "abi_decode_t_address_payable_fromMemory",
																			"nodeType": "YulIdentifier",
																			"src": "3750:39:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "3750:72:13"
																	},
																	"variableNames": [
																		{
																			"name": "value0",
																			"nodeType": "YulIdentifier",
																			"src": "3740:6:13"
																		}
																	]
																}
															]
														}
													]
												},
												"name": "abi_decode_tuple_t_address_payable_fromMemory",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "3594:9:13",
														"type": ""
													},
													{
														"name": "dataEnd",
														"nodeType": "YulTypedName",
														"src": "3605:7:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "3617:6:13",
														"type": ""
													}
												],
												"src": "3539:300:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "3945:452:13",
													"statements": [
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "3991:16:13",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "4000:1:13",
																					"type": "",
																					"value": "0"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "4003:1:13",
																					"type": "",
																					"value": "0"
																				}
																			],
																			"functionName": {
																				"name": "revert",
																				"nodeType": "YulIdentifier",
																				"src": "3993:6:13"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "3993:12:13"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "3993:12:13"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "3966:7:13"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "3975:9:13"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "3962:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "3962:23:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "3987:2:13",
																		"type": "",
																		"value": "96"
																	}
																],
																"functionName": {
																	"name": "slt",
																	"nodeType": "YulIdentifier",
																	"src": "3958:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "3958:32:13"
															},
															"nodeType": "YulIf",
															"src": "3955:2:13"
														},
														{
															"nodeType": "YulBlock",
															"src": "4017:117:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "4032:15:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "4046:1:13",
																		"type": "",
																		"value": "0"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "4036:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "4061:63:13",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "headStart",
																						"nodeType": "YulIdentifier",
																						"src": "4096:9:13"
																					},
																					{
																						"name": "offset",
																						"nodeType": "YulIdentifier",
																						"src": "4107:6:13"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "4092:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "4092:22:13"
																			},
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "4116:7:13"
																			}
																		],
																		"functionName": {
																			"name": "abi_decode_t_address",
																			"nodeType": "YulIdentifier",
																			"src": "4071:20:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "4071:53:13"
																	},
																	"variableNames": [
																		{
																			"name": "value0",
																			"nodeType": "YulIdentifier",
																			"src": "4061:6:13"
																		}
																	]
																}
															]
														},
														{
															"nodeType": "YulBlock",
															"src": "4144:118:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "4159:16:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "4173:2:13",
																		"type": "",
																		"value": "32"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "4163:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "4189:63:13",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "headStart",
																						"nodeType": "YulIdentifier",
																						"src": "4224:9:13"
																					},
																					{
																						"name": "offset",
																						"nodeType": "YulIdentifier",
																						"src": "4235:6:13"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "4220:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "4220:22:13"
																			},
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "4244:7:13"
																			}
																		],
																		"functionName": {
																			"name": "abi_decode_t_address",
																			"nodeType": "YulIdentifier",
																			"src": "4199:20:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "4199:53:13"
																	},
																	"variableNames": [
																		{
																			"name": "value1",
																			"nodeType": "YulIdentifier",
																			"src": "4189:6:13"
																		}
																	]
																}
															]
														},
														{
															"nodeType": "YulBlock",
															"src": "4272:118:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "4287:16:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "4301:2:13",
																		"type": "",
																		"value": "64"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "4291:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "4317:63:13",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "headStart",
																						"nodeType": "YulIdentifier",
																						"src": "4352:9:13"
																					},
																					{
																						"name": "offset",
																						"nodeType": "YulIdentifier",
																						"src": "4363:6:13"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "4348:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "4348:22:13"
																			},
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "4372:7:13"
																			}
																		],
																		"functionName": {
																			"name": "abi_decode_t_uint256",
																			"nodeType": "YulIdentifier",
																			"src": "4327:20:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "4327:53:13"
																	},
																	"variableNames": [
																		{
																			"name": "value2",
																			"nodeType": "YulIdentifier",
																			"src": "4317:6:13"
																		}
																	]
																}
															]
														}
													]
												},
												"name": "abi_decode_tuple_t_addresst_addresst_uint256",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "3899:9:13",
														"type": ""
													},
													{
														"name": "dataEnd",
														"nodeType": "YulTypedName",
														"src": "3910:7:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "3922:6:13",
														"type": ""
													},
													{
														"name": "value1",
														"nodeType": "YulTypedName",
														"src": "3930:6:13",
														"type": ""
													},
													{
														"name": "value2",
														"nodeType": "YulTypedName",
														"src": "3938:6:13",
														"type": ""
													}
												],
												"src": "3845:552:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "4485:323:13",
													"statements": [
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "4531:16:13",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "4540:1:13",
																					"type": "",
																					"value": "0"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "4543:1:13",
																					"type": "",
																					"value": "0"
																				}
																			],
																			"functionName": {
																				"name": "revert",
																				"nodeType": "YulIdentifier",
																				"src": "4533:6:13"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "4533:12:13"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "4533:12:13"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "4506:7:13"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "4515:9:13"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "4502:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "4502:23:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "4527:2:13",
																		"type": "",
																		"value": "64"
																	}
																],
																"functionName": {
																	"name": "slt",
																	"nodeType": "YulIdentifier",
																	"src": "4498:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "4498:32:13"
															},
															"nodeType": "YulIf",
															"src": "4495:2:13"
														},
														{
															"nodeType": "YulBlock",
															"src": "4557:117:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "4572:15:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "4586:1:13",
																		"type": "",
																		"value": "0"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "4576:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "4601:63:13",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "headStart",
																						"nodeType": "YulIdentifier",
																						"src": "4636:9:13"
																					},
																					{
																						"name": "offset",
																						"nodeType": "YulIdentifier",
																						"src": "4647:6:13"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "4632:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "4632:22:13"
																			},
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "4656:7:13"
																			}
																		],
																		"functionName": {
																			"name": "abi_decode_t_address",
																			"nodeType": "YulIdentifier",
																			"src": "4611:20:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "4611:53:13"
																	},
																	"variableNames": [
																		{
																			"name": "value0",
																			"nodeType": "YulIdentifier",
																			"src": "4601:6:13"
																		}
																	]
																}
															]
														},
														{
															"nodeType": "YulBlock",
															"src": "4684:117:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "4699:16:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "4713:2:13",
																		"type": "",
																		"value": "32"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "4703:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "4729:62:13",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "headStart",
																						"nodeType": "YulIdentifier",
																						"src": "4763:9:13"
																					},
																					{
																						"name": "offset",
																						"nodeType": "YulIdentifier",
																						"src": "4774:6:13"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "4759:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "4759:22:13"
																			},
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "4783:7:13"
																			}
																		],
																		"functionName": {
																			"name": "abi_decode_t_uint16",
																			"nodeType": "YulIdentifier",
																			"src": "4739:19:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "4739:52:13"
																	},
																	"variableNames": [
																		{
																			"name": "value1",
																			"nodeType": "YulIdentifier",
																			"src": "4729:6:13"
																		}
																	]
																}
															]
														}
													]
												},
												"name": "abi_decode_tuple_t_addresst_uint16",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "4447:9:13",
														"type": ""
													},
													{
														"name": "dataEnd",
														"nodeType": "YulTypedName",
														"src": "4458:7:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "4470:6:13",
														"type": ""
													},
													{
														"name": "value1",
														"nodeType": "YulTypedName",
														"src": "4478:6:13",
														"type": ""
													}
												],
												"src": "4403:405:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "4888:204:13",
													"statements": [
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "4934:16:13",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "4943:1:13",
																					"type": "",
																					"value": "0"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "4946:1:13",
																					"type": "",
																					"value": "0"
																				}
																			],
																			"functionName": {
																				"name": "revert",
																				"nodeType": "YulIdentifier",
																				"src": "4936:6:13"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "4936:12:13"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "4936:12:13"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "4909:7:13"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "4918:9:13"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "4905:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "4905:23:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "4930:2:13",
																		"type": "",
																		"value": "32"
																	}
																],
																"functionName": {
																	"name": "slt",
																	"nodeType": "YulIdentifier",
																	"src": "4901:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "4901:32:13"
															},
															"nodeType": "YulIf",
															"src": "4898:2:13"
														},
														{
															"nodeType": "YulBlock",
															"src": "4960:125:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "4975:15:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "4989:1:13",
																		"type": "",
																		"value": "0"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "4979:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "5004:71:13",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "headStart",
																						"nodeType": "YulIdentifier",
																						"src": "5047:9:13"
																					},
																					{
																						"name": "offset",
																						"nodeType": "YulIdentifier",
																						"src": "5058:6:13"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "5043:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "5043:22:13"
																			},
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "5067:7:13"
																			}
																		],
																		"functionName": {
																			"name": "abi_decode_t_bool_fromMemory",
																			"nodeType": "YulIdentifier",
																			"src": "5014:28:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "5014:61:13"
																	},
																	"variableNames": [
																		{
																			"name": "value0",
																			"nodeType": "YulIdentifier",
																			"src": "5004:6:13"
																		}
																	]
																}
															]
														}
													]
												},
												"name": "abi_decode_tuple_t_bool_fromMemory",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "4858:9:13",
														"type": ""
													},
													{
														"name": "dataEnd",
														"nodeType": "YulTypedName",
														"src": "4869:7:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "4881:6:13",
														"type": ""
													}
												],
												"src": "4814:278:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "5193:226:13",
													"statements": [
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "5240:16:13",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "5249:1:13",
																					"type": "",
																					"value": "0"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "5252:1:13",
																					"type": "",
																					"value": "0"
																				}
																			],
																			"functionName": {
																				"name": "revert",
																				"nodeType": "YulIdentifier",
																				"src": "5242:6:13"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "5242:12:13"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "5242:12:13"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "5214:7:13"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "5223:9:13"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "5210:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "5210:23:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "5235:3:13",
																		"type": "",
																		"value": "256"
																	}
																],
																"functionName": {
																	"name": "slt",
																	"nodeType": "YulIdentifier",
																	"src": "5206:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "5206:33:13"
															},
															"nodeType": "YulIf",
															"src": "5203:2:13"
														},
														{
															"nodeType": "YulBlock",
															"src": "5266:146:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "5281:15:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "5295:1:13",
																		"type": "",
																		"value": "0"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "5285:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "5310:92:13",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "headStart",
																						"nodeType": "YulIdentifier",
																						"src": "5374:9:13"
																					},
																					{
																						"name": "offset",
																						"nodeType": "YulIdentifier",
																						"src": "5385:6:13"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "5370:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "5370:22:13"
																			},
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "5394:7:13"
																			}
																		],
																		"functionName": {
																			"name": "abi_decode_t_struct$_StargateData_$846_memory_ptr",
																			"nodeType": "YulIdentifier",
																			"src": "5320:49:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "5320:82:13"
																	},
																	"variableNames": [
																		{
																			"name": "value0",
																			"nodeType": "YulIdentifier",
																			"src": "5310:6:13"
																		}
																	]
																}
															]
														}
													]
												},
												"name": "abi_decode_tuple_t_struct$_StargateData_$846_memory_ptr",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "5163:9:13",
														"type": ""
													},
													{
														"name": "dataEnd",
														"nodeType": "YulTypedName",
														"src": "5174:7:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "5186:6:13",
														"type": ""
													}
												],
												"src": "5098:321:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "5524:451:13",
													"statements": [
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "5570:16:13",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "5579:1:13",
																					"type": "",
																					"value": "0"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "5582:1:13",
																					"type": "",
																					"value": "0"
																				}
																			],
																			"functionName": {
																				"name": "revert",
																				"nodeType": "YulIdentifier",
																				"src": "5572:6:13"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "5572:12:13"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "5572:12:13"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "5545:7:13"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "5554:9:13"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "5541:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "5541:23:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "5566:2:13",
																		"type": "",
																		"value": "96"
																	}
																],
																"functionName": {
																	"name": "slt",
																	"nodeType": "YulIdentifier",
																	"src": "5537:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "5537:32:13"
															},
															"nodeType": "YulIf",
															"src": "5534:2:13"
														},
														{
															"nodeType": "YulBlock",
															"src": "5596:116:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "5611:15:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "5625:1:13",
																		"type": "",
																		"value": "0"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "5615:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "5640:62:13",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "headStart",
																						"nodeType": "YulIdentifier",
																						"src": "5674:9:13"
																					},
																					{
																						"name": "offset",
																						"nodeType": "YulIdentifier",
																						"src": "5685:6:13"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "5670:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "5670:22:13"
																			},
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "5694:7:13"
																			}
																		],
																		"functionName": {
																			"name": "abi_decode_t_uint16",
																			"nodeType": "YulIdentifier",
																			"src": "5650:19:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "5650:52:13"
																	},
																	"variableNames": [
																		{
																			"name": "value0",
																			"nodeType": "YulIdentifier",
																			"src": "5640:6:13"
																		}
																	]
																}
															]
														},
														{
															"nodeType": "YulBlock",
															"src": "5722:118:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "5737:16:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "5751:2:13",
																		"type": "",
																		"value": "32"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "5741:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "5767:63:13",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "headStart",
																						"nodeType": "YulIdentifier",
																						"src": "5802:9:13"
																					},
																					{
																						"name": "offset",
																						"nodeType": "YulIdentifier",
																						"src": "5813:6:13"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "5798:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "5798:22:13"
																			},
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "5822:7:13"
																			}
																		],
																		"functionName": {
																			"name": "abi_decode_t_address",
																			"nodeType": "YulIdentifier",
																			"src": "5777:20:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "5777:53:13"
																	},
																	"variableNames": [
																		{
																			"name": "value1",
																			"nodeType": "YulIdentifier",
																			"src": "5767:6:13"
																		}
																	]
																}
															]
														},
														{
															"nodeType": "YulBlock",
															"src": "5850:118:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "5865:16:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "5879:2:13",
																		"type": "",
																		"value": "64"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "5869:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "5895:63:13",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "headStart",
																						"nodeType": "YulIdentifier",
																						"src": "5930:9:13"
																					},
																					{
																						"name": "offset",
																						"nodeType": "YulIdentifier",
																						"src": "5941:6:13"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "5926:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "5926:22:13"
																			},
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "5950:7:13"
																			}
																		],
																		"functionName": {
																			"name": "abi_decode_t_address",
																			"nodeType": "YulIdentifier",
																			"src": "5905:20:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "5905:53:13"
																	},
																	"variableNames": [
																		{
																			"name": "value2",
																			"nodeType": "YulIdentifier",
																			"src": "5895:6:13"
																		}
																	]
																}
															]
														}
													]
												},
												"name": "abi_decode_tuple_t_uint16t_addresst_address",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "5478:9:13",
														"type": ""
													},
													{
														"name": "dataEnd",
														"nodeType": "YulTypedName",
														"src": "5489:7:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "5501:6:13",
														"type": ""
													},
													{
														"name": "value1",
														"nodeType": "YulTypedName",
														"src": "5509:6:13",
														"type": ""
													},
													{
														"name": "value2",
														"nodeType": "YulTypedName",
														"src": "5517:6:13",
														"type": ""
													}
												],
												"src": "5425:550:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "6080:451:13",
													"statements": [
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "6126:16:13",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "6135:1:13",
																					"type": "",
																					"value": "0"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "6138:1:13",
																					"type": "",
																					"value": "0"
																				}
																			],
																			"functionName": {
																				"name": "revert",
																				"nodeType": "YulIdentifier",
																				"src": "6128:6:13"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "6128:12:13"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "6128:12:13"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "6101:7:13"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "6110:9:13"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "6097:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "6097:23:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "6122:2:13",
																		"type": "",
																		"value": "96"
																	}
																],
																"functionName": {
																	"name": "slt",
																	"nodeType": "YulIdentifier",
																	"src": "6093:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "6093:32:13"
															},
															"nodeType": "YulIf",
															"src": "6090:2:13"
														},
														{
															"nodeType": "YulBlock",
															"src": "6152:116:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "6167:15:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "6181:1:13",
																		"type": "",
																		"value": "0"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "6171:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "6196:62:13",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "headStart",
																						"nodeType": "YulIdentifier",
																						"src": "6230:9:13"
																					},
																					{
																						"name": "offset",
																						"nodeType": "YulIdentifier",
																						"src": "6241:6:13"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "6226:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "6226:22:13"
																			},
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "6250:7:13"
																			}
																		],
																		"functionName": {
																			"name": "abi_decode_t_uint16",
																			"nodeType": "YulIdentifier",
																			"src": "6206:19:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "6206:52:13"
																	},
																	"variableNames": [
																		{
																			"name": "value0",
																			"nodeType": "YulIdentifier",
																			"src": "6196:6:13"
																		}
																	]
																}
															]
														},
														{
															"nodeType": "YulBlock",
															"src": "6278:118:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "6293:16:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "6307:2:13",
																		"type": "",
																		"value": "32"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "6297:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "6323:63:13",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "headStart",
																						"nodeType": "YulIdentifier",
																						"src": "6358:9:13"
																					},
																					{
																						"name": "offset",
																						"nodeType": "YulIdentifier",
																						"src": "6369:6:13"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "6354:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "6354:22:13"
																			},
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "6378:7:13"
																			}
																		],
																		"functionName": {
																			"name": "abi_decode_t_address",
																			"nodeType": "YulIdentifier",
																			"src": "6333:20:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "6333:53:13"
																	},
																	"variableNames": [
																		{
																			"name": "value1",
																			"nodeType": "YulIdentifier",
																			"src": "6323:6:13"
																		}
																	]
																}
															]
														},
														{
															"nodeType": "YulBlock",
															"src": "6406:118:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "6421:16:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "6435:2:13",
																		"type": "",
																		"value": "64"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "6425:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "6451:63:13",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "headStart",
																						"nodeType": "YulIdentifier",
																						"src": "6486:9:13"
																					},
																					{
																						"name": "offset",
																						"nodeType": "YulIdentifier",
																						"src": "6497:6:13"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "6482:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "6482:22:13"
																			},
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "6506:7:13"
																			}
																		],
																		"functionName": {
																			"name": "abi_decode_t_uint256",
																			"nodeType": "YulIdentifier",
																			"src": "6461:20:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "6461:53:13"
																	},
																	"variableNames": [
																		{
																			"name": "value2",
																			"nodeType": "YulIdentifier",
																			"src": "6451:6:13"
																		}
																	]
																}
															]
														}
													]
												},
												"name": "abi_decode_tuple_t_uint16t_addresst_uint256",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "6034:9:13",
														"type": ""
													},
													{
														"name": "dataEnd",
														"nodeType": "YulTypedName",
														"src": "6045:7:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "6057:6:13",
														"type": ""
													},
													{
														"name": "value1",
														"nodeType": "YulTypedName",
														"src": "6065:6:13",
														"type": ""
													},
													{
														"name": "value2",
														"nodeType": "YulTypedName",
														"src": "6073:6:13",
														"type": ""
													}
												],
												"src": "5981:550:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "6705:1042:13",
													"statements": [
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "6752:16:13",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "6761:1:13",
																					"type": "",
																					"value": "0"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "6764:1:13",
																					"type": "",
																					"value": "0"
																				}
																			],
																			"functionName": {
																				"name": "revert",
																				"nodeType": "YulIdentifier",
																				"src": "6754:6:13"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "6754:12:13"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "6754:12:13"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "6726:7:13"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "6735:9:13"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "6722:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "6722:23:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "6747:3:13",
																		"type": "",
																		"value": "192"
																	}
																],
																"functionName": {
																	"name": "slt",
																	"nodeType": "YulIdentifier",
																	"src": "6718:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "6718:33:13"
															},
															"nodeType": "YulIf",
															"src": "6715:2:13"
														},
														{
															"nodeType": "YulBlock",
															"src": "6778:116:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "6793:15:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "6807:1:13",
																		"type": "",
																		"value": "0"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "6797:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "6822:62:13",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "headStart",
																						"nodeType": "YulIdentifier",
																						"src": "6856:9:13"
																					},
																					{
																						"name": "offset",
																						"nodeType": "YulIdentifier",
																						"src": "6867:6:13"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "6852:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "6852:22:13"
																			},
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "6876:7:13"
																			}
																		],
																		"functionName": {
																			"name": "abi_decode_t_uint16",
																			"nodeType": "YulIdentifier",
																			"src": "6832:19:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "6832:52:13"
																	},
																	"variableNames": [
																		{
																			"name": "value0",
																			"nodeType": "YulIdentifier",
																			"src": "6822:6:13"
																		}
																	]
																}
															]
														},
														{
															"nodeType": "YulBlock",
															"src": "6904:220:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "6919:46:13",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "headStart",
																						"nodeType": "YulIdentifier",
																						"src": "6950:9:13"
																					},
																					{
																						"kind": "number",
																						"nodeType": "YulLiteral",
																						"src": "6961:2:13",
																						"type": "",
																						"value": "32"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "6946:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "6946:18:13"
																			}
																		],
																		"functionName": {
																			"name": "calldataload",
																			"nodeType": "YulIdentifier",
																			"src": "6933:12:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "6933:32:13"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "6923:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"body": {
																		"nodeType": "YulBlock",
																		"src": "7012:16:13",
																		"statements": [
																			{
																				"expression": {
																					"arguments": [
																						{
																							"kind": "number",
																							"nodeType": "YulLiteral",
																							"src": "7021:1:13",
																							"type": "",
																							"value": "0"
																						},
																						{
																							"kind": "number",
																							"nodeType": "YulLiteral",
																							"src": "7024:1:13",
																							"type": "",
																							"value": "0"
																						}
																					],
																					"functionName": {
																						"name": "revert",
																						"nodeType": "YulIdentifier",
																						"src": "7014:6:13"
																					},
																					"nodeType": "YulFunctionCall",
																					"src": "7014:12:13"
																				},
																				"nodeType": "YulExpressionStatement",
																				"src": "7014:12:13"
																			}
																		]
																	},
																	"condition": {
																		"arguments": [
																			{
																				"name": "offset",
																				"nodeType": "YulIdentifier",
																				"src": "6984:6:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "6992:18:13",
																				"type": "",
																				"value": "0xffffffffffffffff"
																			}
																		],
																		"functionName": {
																			"name": "gt",
																			"nodeType": "YulIdentifier",
																			"src": "6981:2:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "6981:30:13"
																	},
																	"nodeType": "YulIf",
																	"src": "6978:2:13"
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "7042:72:13",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "headStart",
																						"nodeType": "YulIdentifier",
																						"src": "7086:9:13"
																					},
																					{
																						"name": "offset",
																						"nodeType": "YulIdentifier",
																						"src": "7097:6:13"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "7082:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "7082:22:13"
																			},
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "7106:7:13"
																			}
																		],
																		"functionName": {
																			"name": "abi_decode_t_bytes_memory_ptr",
																			"nodeType": "YulIdentifier",
																			"src": "7052:29:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "7052:62:13"
																	},
																	"variableNames": [
																		{
																			"name": "value1",
																			"nodeType": "YulIdentifier",
																			"src": "7042:6:13"
																		}
																	]
																}
															]
														},
														{
															"nodeType": "YulBlock",
															"src": "7134:118:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "7149:16:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "7163:2:13",
																		"type": "",
																		"value": "64"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "7153:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "7179:63:13",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "headStart",
																						"nodeType": "YulIdentifier",
																						"src": "7214:9:13"
																					},
																					{
																						"name": "offset",
																						"nodeType": "YulIdentifier",
																						"src": "7225:6:13"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "7210:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "7210:22:13"
																			},
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "7234:7:13"
																			}
																		],
																		"functionName": {
																			"name": "abi_decode_t_uint256",
																			"nodeType": "YulIdentifier",
																			"src": "7189:20:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "7189:53:13"
																	},
																	"variableNames": [
																		{
																			"name": "value2",
																			"nodeType": "YulIdentifier",
																			"src": "7179:6:13"
																		}
																	]
																}
															]
														},
														{
															"nodeType": "YulBlock",
															"src": "7262:118:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "7277:16:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "7291:2:13",
																		"type": "",
																		"value": "96"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "7281:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "7307:63:13",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "headStart",
																						"nodeType": "YulIdentifier",
																						"src": "7342:9:13"
																					},
																					{
																						"name": "offset",
																						"nodeType": "YulIdentifier",
																						"src": "7353:6:13"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "7338:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "7338:22:13"
																			},
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "7362:7:13"
																			}
																		],
																		"functionName": {
																			"name": "abi_decode_t_address",
																			"nodeType": "YulIdentifier",
																			"src": "7317:20:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "7317:53:13"
																	},
																	"variableNames": [
																		{
																			"name": "value3",
																			"nodeType": "YulIdentifier",
																			"src": "7307:6:13"
																		}
																	]
																}
															]
														},
														{
															"nodeType": "YulBlock",
															"src": "7390:119:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "7405:17:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "7419:3:13",
																		"type": "",
																		"value": "128"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "7409:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "7436:63:13",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "headStart",
																						"nodeType": "YulIdentifier",
																						"src": "7471:9:13"
																					},
																					{
																						"name": "offset",
																						"nodeType": "YulIdentifier",
																						"src": "7482:6:13"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "7467:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "7467:22:13"
																			},
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "7491:7:13"
																			}
																		],
																		"functionName": {
																			"name": "abi_decode_t_uint256",
																			"nodeType": "YulIdentifier",
																			"src": "7446:20:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "7446:53:13"
																	},
																	"variableNames": [
																		{
																			"name": "value4",
																			"nodeType": "YulIdentifier",
																			"src": "7436:6:13"
																		}
																	]
																}
															]
														},
														{
															"nodeType": "YulBlock",
															"src": "7519:221:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "7534:47:13",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "headStart",
																						"nodeType": "YulIdentifier",
																						"src": "7565:9:13"
																					},
																					{
																						"kind": "number",
																						"nodeType": "YulLiteral",
																						"src": "7576:3:13",
																						"type": "",
																						"value": "160"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "7561:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "7561:19:13"
																			}
																		],
																		"functionName": {
																			"name": "calldataload",
																			"nodeType": "YulIdentifier",
																			"src": "7548:12:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "7548:33:13"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "7538:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"body": {
																		"nodeType": "YulBlock",
																		"src": "7628:16:13",
																		"statements": [
																			{
																				"expression": {
																					"arguments": [
																						{
																							"kind": "number",
																							"nodeType": "YulLiteral",
																							"src": "7637:1:13",
																							"type": "",
																							"value": "0"
																						},
																						{
																							"kind": "number",
																							"nodeType": "YulLiteral",
																							"src": "7640:1:13",
																							"type": "",
																							"value": "0"
																						}
																					],
																					"functionName": {
																						"name": "revert",
																						"nodeType": "YulIdentifier",
																						"src": "7630:6:13"
																					},
																					"nodeType": "YulFunctionCall",
																					"src": "7630:12:13"
																				},
																				"nodeType": "YulExpressionStatement",
																				"src": "7630:12:13"
																			}
																		]
																	},
																	"condition": {
																		"arguments": [
																			{
																				"name": "offset",
																				"nodeType": "YulIdentifier",
																				"src": "7600:6:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "7608:18:13",
																				"type": "",
																				"value": "0xffffffffffffffff"
																			}
																		],
																		"functionName": {
																			"name": "gt",
																			"nodeType": "YulIdentifier",
																			"src": "7597:2:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "7597:30:13"
																	},
																	"nodeType": "YulIf",
																	"src": "7594:2:13"
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "7658:72:13",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "headStart",
																						"nodeType": "YulIdentifier",
																						"src": "7702:9:13"
																					},
																					{
																						"name": "offset",
																						"nodeType": "YulIdentifier",
																						"src": "7713:6:13"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "7698:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "7698:22:13"
																			},
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "7722:7:13"
																			}
																		],
																		"functionName": {
																			"name": "abi_decode_t_bytes_memory_ptr",
																			"nodeType": "YulIdentifier",
																			"src": "7668:29:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "7668:62:13"
																	},
																	"variableNames": [
																		{
																			"name": "value5",
																			"nodeType": "YulIdentifier",
																			"src": "7658:6:13"
																		}
																	]
																}
															]
														}
													]
												},
												"name": "abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint256t_addresst_uint256t_bytes_memory_ptr",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "6635:9:13",
														"type": ""
													},
													{
														"name": "dataEnd",
														"nodeType": "YulTypedName",
														"src": "6646:7:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "6658:6:13",
														"type": ""
													},
													{
														"name": "value1",
														"nodeType": "YulTypedName",
														"src": "6666:6:13",
														"type": ""
													},
													{
														"name": "value2",
														"nodeType": "YulTypedName",
														"src": "6674:6:13",
														"type": ""
													},
													{
														"name": "value3",
														"nodeType": "YulTypedName",
														"src": "6682:6:13",
														"type": ""
													},
													{
														"name": "value4",
														"nodeType": "YulTypedName",
														"src": "6690:6:13",
														"type": ""
													},
													{
														"name": "value5",
														"nodeType": "YulTypedName",
														"src": "6698:6:13",
														"type": ""
													}
												],
												"src": "6537:1210:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "7819:196:13",
													"statements": [
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "7865:16:13",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "7874:1:13",
																					"type": "",
																					"value": "0"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "7877:1:13",
																					"type": "",
																					"value": "0"
																				}
																			],
																			"functionName": {
																				"name": "revert",
																				"nodeType": "YulIdentifier",
																				"src": "7867:6:13"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "7867:12:13"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "7867:12:13"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "7840:7:13"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "7849:9:13"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "7836:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "7836:23:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "7861:2:13",
																		"type": "",
																		"value": "32"
																	}
																],
																"functionName": {
																	"name": "slt",
																	"nodeType": "YulIdentifier",
																	"src": "7832:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "7832:32:13"
															},
															"nodeType": "YulIf",
															"src": "7829:2:13"
														},
														{
															"nodeType": "YulBlock",
															"src": "7891:117:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "7906:15:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "7920:1:13",
																		"type": "",
																		"value": "0"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "7910:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "7935:63:13",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "headStart",
																						"nodeType": "YulIdentifier",
																						"src": "7970:9:13"
																					},
																					{
																						"name": "offset",
																						"nodeType": "YulIdentifier",
																						"src": "7981:6:13"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "7966:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "7966:22:13"
																			},
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "7990:7:13"
																			}
																		],
																		"functionName": {
																			"name": "abi_decode_t_uint256",
																			"nodeType": "YulIdentifier",
																			"src": "7945:20:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "7945:53:13"
																	},
																	"variableNames": [
																		{
																			"name": "value0",
																			"nodeType": "YulIdentifier",
																			"src": "7935:6:13"
																		}
																	]
																}
															]
														}
													]
												},
												"name": "abi_decode_tuple_t_uint256",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "7789:9:13",
														"type": ""
													},
													{
														"name": "dataEnd",
														"nodeType": "YulTypedName",
														"src": "7800:7:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "7812:6:13",
														"type": ""
													}
												],
												"src": "7753:262:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "8098:207:13",
													"statements": [
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "8144:16:13",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "8153:1:13",
																					"type": "",
																					"value": "0"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "8156:1:13",
																					"type": "",
																					"value": "0"
																				}
																			],
																			"functionName": {
																				"name": "revert",
																				"nodeType": "YulIdentifier",
																				"src": "8146:6:13"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "8146:12:13"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "8146:12:13"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "8119:7:13"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "8128:9:13"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "8115:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "8115:23:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "8140:2:13",
																		"type": "",
																		"value": "32"
																	}
																],
																"functionName": {
																	"name": "slt",
																	"nodeType": "YulIdentifier",
																	"src": "8111:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "8111:32:13"
															},
															"nodeType": "YulIf",
															"src": "8108:2:13"
														},
														{
															"nodeType": "YulBlock",
															"src": "8170:128:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "8185:15:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "8199:1:13",
																		"type": "",
																		"value": "0"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "8189:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "8214:74:13",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "headStart",
																						"nodeType": "YulIdentifier",
																						"src": "8260:9:13"
																					},
																					{
																						"name": "offset",
																						"nodeType": "YulIdentifier",
																						"src": "8271:6:13"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "8256:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "8256:22:13"
																			},
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "8280:7:13"
																			}
																		],
																		"functionName": {
																			"name": "abi_decode_t_uint256_fromMemory",
																			"nodeType": "YulIdentifier",
																			"src": "8224:31:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "8224:64:13"
																	},
																	"variableNames": [
																		{
																			"name": "value0",
																			"nodeType": "YulIdentifier",
																			"src": "8214:6:13"
																		}
																	]
																}
															]
														}
													]
												},
												"name": "abi_decode_tuple_t_uint256_fromMemory",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "8068:9:13",
														"type": ""
													},
													{
														"name": "dataEnd",
														"nodeType": "YulTypedName",
														"src": "8079:7:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "8091:6:13",
														"type": ""
													}
												],
												"src": "8021:284:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "8405:346:13",
													"statements": [
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "8451:16:13",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "8460:1:13",
																					"type": "",
																					"value": "0"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "8463:1:13",
																					"type": "",
																					"value": "0"
																				}
																			],
																			"functionName": {
																				"name": "revert",
																				"nodeType": "YulIdentifier",
																				"src": "8453:6:13"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "8453:12:13"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "8453:12:13"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "8426:7:13"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "8435:9:13"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "8422:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "8422:23:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "8447:2:13",
																		"type": "",
																		"value": "64"
																	}
																],
																"functionName": {
																	"name": "slt",
																	"nodeType": "YulIdentifier",
																	"src": "8418:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "8418:32:13"
															},
															"nodeType": "YulIf",
															"src": "8415:2:13"
														},
														{
															"nodeType": "YulBlock",
															"src": "8477:128:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "8492:15:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "8506:1:13",
																		"type": "",
																		"value": "0"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "8496:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "8521:74:13",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "headStart",
																						"nodeType": "YulIdentifier",
																						"src": "8567:9:13"
																					},
																					{
																						"name": "offset",
																						"nodeType": "YulIdentifier",
																						"src": "8578:6:13"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "8563:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "8563:22:13"
																			},
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "8587:7:13"
																			}
																		],
																		"functionName": {
																			"name": "abi_decode_t_uint256_fromMemory",
																			"nodeType": "YulIdentifier",
																			"src": "8531:31:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "8531:64:13"
																	},
																	"variableNames": [
																		{
																			"name": "value0",
																			"nodeType": "YulIdentifier",
																			"src": "8521:6:13"
																		}
																	]
																}
															]
														},
														{
															"nodeType": "YulBlock",
															"src": "8615:129:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "8630:16:13",
																	"value": {
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "8644:2:13",
																		"type": "",
																		"value": "32"
																	},
																	"variables": [
																		{
																			"name": "offset",
																			"nodeType": "YulTypedName",
																			"src": "8634:6:13",
																			"type": ""
																		}
																	]
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "8660:74:13",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "headStart",
																						"nodeType": "YulIdentifier",
																						"src": "8706:9:13"
																					},
																					{
																						"name": "offset",
																						"nodeType": "YulIdentifier",
																						"src": "8717:6:13"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "8702:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "8702:22:13"
																			},
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "8726:7:13"
																			}
																		],
																		"functionName": {
																			"name": "abi_decode_t_uint256_fromMemory",
																			"nodeType": "YulIdentifier",
																			"src": "8670:31:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "8670:64:13"
																	},
																	"variableNames": [
																		{
																			"name": "value1",
																			"nodeType": "YulIdentifier",
																			"src": "8660:6:13"
																		}
																	]
																}
															]
														}
													]
												},
												"name": "abi_decode_tuple_t_uint256t_uint256_fromMemory",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "8367:9:13",
														"type": ""
													},
													{
														"name": "dataEnd",
														"nodeType": "YulTypedName",
														"src": "8378:7:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "8390:6:13",
														"type": ""
													},
													{
														"name": "value1",
														"nodeType": "YulTypedName",
														"src": "8398:6:13",
														"type": ""
													}
												],
												"src": "8311:440:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "8830:74:13",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "8847:3:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "value",
																				"nodeType": "YulIdentifier",
																				"src": "8891:5:13"
																			}
																		],
																		"functionName": {
																			"name": "convert_t_address_payable_to_t_address",
																			"nodeType": "YulIdentifier",
																			"src": "8852:38:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "8852:45:13"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "8840:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "8840:58:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "8840:58:13"
														}
													]
												},
												"name": "abi_encode_t_address_payable_to_t_address_fromStack",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "8818:5:13",
														"type": ""
													},
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "8825:3:13",
														"type": ""
													}
												],
												"src": "8757:147:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "8991:61:13",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "9008:3:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "value",
																				"nodeType": "YulIdentifier",
																				"src": "9039:5:13"
																			}
																		],
																		"functionName": {
																			"name": "cleanup_t_address_payable",
																			"nodeType": "YulIdentifier",
																			"src": "9013:25:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "9013:32:13"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "9001:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "9001:45:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "9001:45:13"
														}
													]
												},
												"name": "abi_encode_t_address_payable_to_t_address_payable_fromStack",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "8979:5:13",
														"type": ""
													},
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "8986:3:13",
														"type": ""
													}
												],
												"src": "8910:142:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "9123:53:13",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "9140:3:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "value",
																				"nodeType": "YulIdentifier",
																				"src": "9163:5:13"
																			}
																		],
																		"functionName": {
																			"name": "cleanup_t_address",
																			"nodeType": "YulIdentifier",
																			"src": "9145:17:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "9145:24:13"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "9133:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "9133:37:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "9133:37:13"
														}
													]
												},
												"name": "abi_encode_t_address_to_t_address_fromStack",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "9111:5:13",
														"type": ""
													},
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "9118:3:13",
														"type": ""
													}
												],
												"src": "9058:118:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "9265:74:13",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "9282:3:13"
																	},
																	{
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "value",
																						"nodeType": "YulIdentifier",
																						"src": "9325:5:13"
																					}
																				],
																				"functionName": {
																					"name": "cleanup_t_address",
																					"nodeType": "YulIdentifier",
																					"src": "9307:17:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "9307:24:13"
																			}
																		],
																		"functionName": {
																			"name": "leftAlign_t_address",
																			"nodeType": "YulIdentifier",
																			"src": "9287:19:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "9287:45:13"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "9275:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "9275:58:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "9275:58:13"
														}
													]
												},
												"name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "9253:5:13",
														"type": ""
													},
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "9260:3:13",
														"type": ""
													}
												],
												"src": "9182:157:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "9404:50:13",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "9421:3:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "value",
																				"nodeType": "YulIdentifier",
																				"src": "9441:5:13"
																			}
																		],
																		"functionName": {
																			"name": "cleanup_t_bool",
																			"nodeType": "YulIdentifier",
																			"src": "9426:14:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "9426:21:13"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "9414:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "9414:34:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "9414:34:13"
														}
													]
												},
												"name": "abi_encode_t_bool_to_t_bool_fromStack",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "9392:5:13",
														"type": ""
													},
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "9399:3:13",
														"type": ""
													}
												],
												"src": "9345:109:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "9540:260:13",
													"statements": [
														{
															"nodeType": "YulVariableDeclaration",
															"src": "9550:52:13",
															"value": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "9596:5:13"
																	}
																],
																"functionName": {
																	"name": "array_length_t_bytes_memory_ptr",
																	"nodeType": "YulIdentifier",
																	"src": "9564:31:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "9564:38:13"
															},
															"variables": [
																{
																	"name": "length",
																	"nodeType": "YulTypedName",
																	"src": "9554:6:13",
																	"type": ""
																}
															]
														},
														{
															"nodeType": "YulAssignment",
															"src": "9611:67:13",
															"value": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "9666:3:13"
																	},
																	{
																		"name": "length",
																		"nodeType": "YulIdentifier",
																		"src": "9671:6:13"
																	}
																],
																"functionName": {
																	"name": "array_storeLengthForEncoding_t_bytes_memory_ptr",
																	"nodeType": "YulIdentifier",
																	"src": "9618:47:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "9618:60:13"
															},
															"variableNames": [
																{
																	"name": "pos",
																	"nodeType": "YulIdentifier",
																	"src": "9611:3:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "value",
																				"nodeType": "YulIdentifier",
																				"src": "9713:5:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "9720:4:13",
																				"type": "",
																				"value": "0x20"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "9709:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "9709:16:13"
																	},
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "9727:3:13"
																	},
																	{
																		"name": "length",
																		"nodeType": "YulIdentifier",
																		"src": "9732:6:13"
																	}
																],
																"functionName": {
																	"name": "copy_memory_to_memory",
																	"nodeType": "YulIdentifier",
																	"src": "9687:21:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "9687:52:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "9687:52:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "9748:46:13",
															"value": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "9759:3:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "length",
																				"nodeType": "YulIdentifier",
																				"src": "9786:6:13"
																			}
																		],
																		"functionName": {
																			"name": "round_up_to_mul_of_32",
																			"nodeType": "YulIdentifier",
																			"src": "9764:21:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "9764:29:13"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "9755:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "9755:39:13"
															},
															"variableNames": [
																{
																	"name": "end",
																	"nodeType": "YulIdentifier",
																	"src": "9748:3:13"
																}
															]
														}
													]
												},
												"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "9521:5:13",
														"type": ""
													},
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "9528:3:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "end",
														"nodeType": "YulTypedName",
														"src": "9536:3:13",
														"type": ""
													}
												],
												"src": "9460:340:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "9896:270:13",
													"statements": [
														{
															"nodeType": "YulVariableDeclaration",
															"src": "9906:52:13",
															"value": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "9952:5:13"
																	}
																],
																"functionName": {
																	"name": "array_length_t_bytes_memory_ptr",
																	"nodeType": "YulIdentifier",
																	"src": "9920:31:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "9920:38:13"
															},
															"variables": [
																{
																	"name": "length",
																	"nodeType": "YulTypedName",
																	"src": "9910:6:13",
																	"type": ""
																}
															]
														},
														{
															"nodeType": "YulAssignment",
															"src": "9967:77:13",
															"value": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "10032:3:13"
																	},
																	{
																		"name": "length",
																		"nodeType": "YulIdentifier",
																		"src": "10037:6:13"
																	}
																],
																"functionName": {
																	"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "9974:57:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "9974:70:13"
															},
															"variableNames": [
																{
																	"name": "pos",
																	"nodeType": "YulIdentifier",
																	"src": "9967:3:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "value",
																				"nodeType": "YulIdentifier",
																				"src": "10079:5:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "10086:4:13",
																				"type": "",
																				"value": "0x20"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "10075:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "10075:16:13"
																	},
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "10093:3:13"
																	},
																	{
																		"name": "length",
																		"nodeType": "YulIdentifier",
																		"src": "10098:6:13"
																	}
																],
																"functionName": {
																	"name": "copy_memory_to_memory",
																	"nodeType": "YulIdentifier",
																	"src": "10053:21:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "10053:52:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "10053:52:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "10114:46:13",
															"value": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "10125:3:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "length",
																				"nodeType": "YulIdentifier",
																				"src": "10152:6:13"
																			}
																		],
																		"functionName": {
																			"name": "round_up_to_mul_of_32",
																			"nodeType": "YulIdentifier",
																			"src": "10130:21:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "10130:29:13"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "10121:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "10121:39:13"
															},
															"variableNames": [
																{
																	"name": "end",
																	"nodeType": "YulIdentifier",
																	"src": "10114:3:13"
																}
															]
														}
													]
												},
												"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "9877:5:13",
														"type": ""
													},
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "9884:3:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "end",
														"nodeType": "YulTypedName",
														"src": "9892:3:13",
														"type": ""
													}
												],
												"src": "9806:360:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "10280:265:13",
													"statements": [
														{
															"nodeType": "YulVariableDeclaration",
															"src": "10290:52:13",
															"value": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "10336:5:13"
																	}
																],
																"functionName": {
																	"name": "array_length_t_bytes_memory_ptr",
																	"nodeType": "YulIdentifier",
																	"src": "10304:31:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "10304:38:13"
															},
															"variables": [
																{
																	"name": "length",
																	"nodeType": "YulTypedName",
																	"src": "10294:6:13",
																	"type": ""
																}
															]
														},
														{
															"nodeType": "YulAssignment",
															"src": "10351:95:13",
															"value": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "10434:3:13"
																	},
																	{
																		"name": "length",
																		"nodeType": "YulIdentifier",
																		"src": "10439:6:13"
																	}
																],
																"functionName": {
																	"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "10358:75:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "10358:88:13"
															},
															"variableNames": [
																{
																	"name": "pos",
																	"nodeType": "YulIdentifier",
																	"src": "10351:3:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "value",
																				"nodeType": "YulIdentifier",
																				"src": "10481:5:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "10488:4:13",
																				"type": "",
																				"value": "0x20"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "10477:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "10477:16:13"
																	},
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "10495:3:13"
																	},
																	{
																		"name": "length",
																		"nodeType": "YulIdentifier",
																		"src": "10500:6:13"
																	}
																],
																"functionName": {
																	"name": "copy_memory_to_memory",
																	"nodeType": "YulIdentifier",
																	"src": "10455:21:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "10455:52:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "10455:52:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "10516:23:13",
															"value": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "10527:3:13"
																	},
																	{
																		"name": "length",
																		"nodeType": "YulIdentifier",
																		"src": "10532:6:13"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "10523:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "10523:16:13"
															},
															"variableNames": [
																{
																	"name": "end",
																	"nodeType": "YulIdentifier",
																	"src": "10516:3:13"
																}
															]
														}
													]
												},
												"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "10261:5:13",
														"type": ""
													},
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "10268:3:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "end",
														"nodeType": "YulTypedName",
														"src": "10276:3:13",
														"type": ""
													}
												],
												"src": "10172:373:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "10622:72:13",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "10639:3:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "value",
																				"nodeType": "YulIdentifier",
																				"src": "10681:5:13"
																			}
																		],
																		"functionName": {
																			"name": "convert_t_rational_1_by_1_to_t_uint8",
																			"nodeType": "YulIdentifier",
																			"src": "10644:36:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "10644:43:13"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "10632:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "10632:56:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "10632:56:13"
														}
													]
												},
												"name": "abi_encode_t_rational_1_by_1_to_t_uint8_fromStack",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "10610:5:13",
														"type": ""
													},
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "10617:3:13",
														"type": ""
													}
												],
												"src": "10551:143:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "10792:272:13",
													"statements": [
														{
															"nodeType": "YulVariableDeclaration",
															"src": "10802:53:13",
															"value": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "10849:5:13"
																	}
																],
																"functionName": {
																	"name": "array_length_t_string_memory_ptr",
																	"nodeType": "YulIdentifier",
																	"src": "10816:32:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "10816:39:13"
															},
															"variables": [
																{
																	"name": "length",
																	"nodeType": "YulTypedName",
																	"src": "10806:6:13",
																	"type": ""
																}
															]
														},
														{
															"nodeType": "YulAssignment",
															"src": "10864:78:13",
															"value": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "10930:3:13"
																	},
																	{
																		"name": "length",
																		"nodeType": "YulIdentifier",
																		"src": "10935:6:13"
																	}
																],
																"functionName": {
																	"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "10871:58:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "10871:71:13"
															},
															"variableNames": [
																{
																	"name": "pos",
																	"nodeType": "YulIdentifier",
																	"src": "10864:3:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "value",
																				"nodeType": "YulIdentifier",
																				"src": "10977:5:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "10984:4:13",
																				"type": "",
																				"value": "0x20"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "10973:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "10973:16:13"
																	},
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "10991:3:13"
																	},
																	{
																		"name": "length",
																		"nodeType": "YulIdentifier",
																		"src": "10996:6:13"
																	}
																],
																"functionName": {
																	"name": "copy_memory_to_memory",
																	"nodeType": "YulIdentifier",
																	"src": "10951:21:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "10951:52:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "10951:52:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "11012:46:13",
															"value": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "11023:3:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "length",
																				"nodeType": "YulIdentifier",
																				"src": "11050:6:13"
																			}
																		],
																		"functionName": {
																			"name": "round_up_to_mul_of_32",
																			"nodeType": "YulIdentifier",
																			"src": "11028:21:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "11028:29:13"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "11019:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "11019:39:13"
															},
															"variableNames": [
																{
																	"name": "end",
																	"nodeType": "YulIdentifier",
																	"src": "11012:3:13"
																}
															]
														}
													]
												},
												"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "10773:5:13",
														"type": ""
													},
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "10780:3:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "end",
														"nodeType": "YulTypedName",
														"src": "10788:3:13",
														"type": ""
													}
												],
												"src": "10700:364:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "11216:220:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "11226:74:13",
															"value": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "11292:3:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "11297:2:13",
																		"type": "",
																		"value": "34"
																	}
																],
																"functionName": {
																	"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "11233:58:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "11233:67:13"
															},
															"variableNames": [
																{
																	"name": "pos",
																	"nodeType": "YulIdentifier",
																	"src": "11226:3:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "11398:3:13"
																	}
																],
																"functionName": {
																	"name": "store_literal_in_memory_0d4ae41009c51fd276653a54d7793c24f266ddc8c56ce21f8be5e2c6595ab3ac",
																	"nodeType": "YulIdentifier",
																	"src": "11309:88:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "11309:93:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "11309:93:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "11411:19:13",
															"value": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "11422:3:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "11427:2:13",
																		"type": "",
																		"value": "64"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "11418:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "11418:12:13"
															},
															"variableNames": [
																{
																	"name": "end",
																	"nodeType": "YulIdentifier",
																	"src": "11411:3:13"
																}
															]
														}
													]
												},
												"name": "abi_encode_t_stringliteral_0d4ae41009c51fd276653a54d7793c24f266ddc8c56ce21f8be5e2c6595ab3ac_to_t_string_memory_ptr_fromStack",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "11204:3:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "end",
														"nodeType": "YulTypedName",
														"src": "11212:3:13",
														"type": ""
													}
												],
												"src": "11070:366:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "11587:218:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "11597:72:13",
															"value": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "11662:3:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "11667:1:13",
																		"type": "",
																		"value": "2"
																	}
																],
																"functionName": {
																	"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "11604:57:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "11604:65:13"
															},
															"variableNames": [
																{
																	"name": "pos",
																	"nodeType": "YulIdentifier",
																	"src": "11597:3:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "11767:3:13"
																	}
																],
																"functionName": {
																	"name": "store_literal_in_memory_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837",
																	"nodeType": "YulIdentifier",
																	"src": "11678:88:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "11678:93:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "11678:93:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "11780:19:13",
															"value": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "11791:3:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "11796:2:13",
																		"type": "",
																		"value": "32"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "11787:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "11787:12:13"
															},
															"variableNames": [
																{
																	"name": "end",
																	"nodeType": "YulIdentifier",
																	"src": "11780:3:13"
																}
															]
														}
													]
												},
												"name": "abi_encode_t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837_to_t_bytes_memory_ptr_fromStack",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "11575:3:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "end",
														"nodeType": "YulTypedName",
														"src": "11583:3:13",
														"type": ""
													}
												],
												"src": "11442:363:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "11957:220:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "11967:74:13",
															"value": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "12033:3:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "12038:2:13",
																		"type": "",
																		"value": "38"
																	}
																],
																"functionName": {
																	"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "11974:58:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "11974:67:13"
															},
															"variableNames": [
																{
																	"name": "pos",
																	"nodeType": "YulIdentifier",
																	"src": "11967:3:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "12139:3:13"
																	}
																],
																"functionName": {
																	"name": "store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c",
																	"nodeType": "YulIdentifier",
																	"src": "12050:88:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "12050:93:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "12050:93:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "12152:19:13",
															"value": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "12163:3:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "12168:2:13",
																		"type": "",
																		"value": "64"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "12159:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "12159:12:13"
															},
															"variableNames": [
																{
																	"name": "end",
																	"nodeType": "YulIdentifier",
																	"src": "12152:3:13"
																}
															]
														}
													]
												},
												"name": "abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "11945:3:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "end",
														"nodeType": "YulTypedName",
														"src": "11953:3:13",
														"type": ""
													}
												],
												"src": "11811:366:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "12329:219:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "12339:73:13",
															"value": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "12405:3:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "12410:1:13",
																		"type": "",
																		"value": "8"
																	}
																],
																"functionName": {
																	"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "12346:58:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "12346:66:13"
															},
															"variableNames": [
																{
																	"name": "pos",
																	"nodeType": "YulIdentifier",
																	"src": "12339:3:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "12510:3:13"
																	}
																],
																"functionName": {
																	"name": "store_literal_in_memory_6ba4f45f593ebc3b0035188aa4ba0c82f39a70f583863862aab89e6ae77de4d9",
																	"nodeType": "YulIdentifier",
																	"src": "12421:88:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "12421:93:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "12421:93:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "12523:19:13",
															"value": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "12534:3:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "12539:2:13",
																		"type": "",
																		"value": "32"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "12530:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "12530:12:13"
															},
															"variableNames": [
																{
																	"name": "end",
																	"nodeType": "YulIdentifier",
																	"src": "12523:3:13"
																}
															]
														}
													]
												},
												"name": "abi_encode_t_stringliteral_6ba4f45f593ebc3b0035188aa4ba0c82f39a70f583863862aab89e6ae77de4d9_to_t_string_memory_ptr_fromStack",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "12317:3:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "end",
														"nodeType": "YulTypedName",
														"src": "12325:3:13",
														"type": ""
													}
												],
												"src": "12183:365:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "12700:220:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "12710:74:13",
															"value": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "12776:3:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "12781:2:13",
																		"type": "",
																		"value": "29"
																	}
																],
																"functionName": {
																	"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "12717:58:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "12717:67:13"
															},
															"variableNames": [
																{
																	"name": "pos",
																	"nodeType": "YulIdentifier",
																	"src": "12710:3:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "12882:3:13"
																	}
																],
																"functionName": {
																	"name": "store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad",
																	"nodeType": "YulIdentifier",
																	"src": "12793:88:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "12793:93:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "12793:93:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "12895:19:13",
															"value": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "12906:3:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "12911:2:13",
																		"type": "",
																		"value": "32"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "12902:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "12902:12:13"
															},
															"variableNames": [
																{
																	"name": "end",
																	"nodeType": "YulIdentifier",
																	"src": "12895:3:13"
																}
															]
														}
													]
												},
												"name": "abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "12688:3:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "end",
														"nodeType": "YulTypedName",
														"src": "12696:3:13",
														"type": ""
													}
												],
												"src": "12554:366:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "13072:220:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "13082:74:13",
															"value": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "13148:3:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "13153:2:13",
																		"type": "",
																		"value": "42"
																	}
																],
																"functionName": {
																	"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "13089:58:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "13089:67:13"
															},
															"variableNames": [
																{
																	"name": "pos",
																	"nodeType": "YulIdentifier",
																	"src": "13082:3:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "13254:3:13"
																	}
																],
																"functionName": {
																	"name": "store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd",
																	"nodeType": "YulIdentifier",
																	"src": "13165:88:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "13165:93:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "13165:93:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "13267:19:13",
															"value": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "13278:3:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "13283:2:13",
																		"type": "",
																		"value": "64"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "13274:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "13274:12:13"
															},
															"variableNames": [
																{
																	"name": "end",
																	"nodeType": "YulIdentifier",
																	"src": "13267:3:13"
																}
															]
														}
													]
												},
												"name": "abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "13060:3:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "end",
														"nodeType": "YulTypedName",
														"src": "13068:3:13",
														"type": ""
													}
												],
												"src": "12926:366:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "13444:220:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "13454:74:13",
															"value": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "13520:3:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "13525:2:13",
																		"type": "",
																		"value": "54"
																	}
																],
																"functionName": {
																	"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "13461:58:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "13461:67:13"
															},
															"variableNames": [
																{
																	"name": "pos",
																	"nodeType": "YulIdentifier",
																	"src": "13454:3:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "13626:3:13"
																	}
																],
																"functionName": {
																	"name": "store_literal_in_memory_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25",
																	"nodeType": "YulIdentifier",
																	"src": "13537:88:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "13537:93:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "13537:93:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "13639:19:13",
															"value": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "13650:3:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "13655:2:13",
																		"type": "",
																		"value": "64"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "13646:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "13646:12:13"
															},
															"variableNames": [
																{
																	"name": "end",
																	"nodeType": "YulIdentifier",
																	"src": "13639:3:13"
																}
															]
														}
													]
												},
												"name": "abi_encode_t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25_to_t_string_memory_ptr_fromStack",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "13432:3:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "end",
														"nodeType": "YulTypedName",
														"src": "13440:3:13",
														"type": ""
													}
												],
												"src": "13298:366:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "13866:683:13",
													"statements": [
														{
															"nodeType": "YulVariableDeclaration",
															"src": "13876:26:13",
															"value": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "13892:3:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "13897:4:13",
																		"type": "",
																		"value": "0x60"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "13888:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "13888:14:13"
															},
															"variables": [
																{
																	"name": "tail",
																	"nodeType": "YulTypedName",
																	"src": "13880:4:13",
																	"type": ""
																}
															]
														},
														{
															"nodeType": "YulBlock",
															"src": "13912:173:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "13956:43:13",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "value",
																						"nodeType": "YulIdentifier",
																						"src": "13986:5:13"
																					},
																					{
																						"kind": "number",
																						"nodeType": "YulLiteral",
																						"src": "13993:4:13",
																						"type": "",
																						"value": "0x00"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "13982:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "13982:16:13"
																			}
																		],
																		"functionName": {
																			"name": "mload",
																			"nodeType": "YulIdentifier",
																			"src": "13976:5:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "13976:23:13"
																	},
																	"variables": [
																		{
																			"name": "memberValue0",
																			"nodeType": "YulTypedName",
																			"src": "13960:12:13",
																			"type": ""
																		}
																	]
																},
																{
																	"expression": {
																		"arguments": [
																			{
																				"name": "memberValue0",
																				"nodeType": "YulIdentifier",
																				"src": "14046:12:13"
																			},
																			{
																				"arguments": [
																					{
																						"name": "pos",
																						"nodeType": "YulIdentifier",
																						"src": "14064:3:13"
																					},
																					{
																						"kind": "number",
																						"nodeType": "YulLiteral",
																						"src": "14069:4:13",
																						"type": "",
																						"value": "0x00"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "14060:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "14060:14:13"
																			}
																		],
																		"functionName": {
																			"name": "abi_encode_t_uint256_to_t_uint256",
																			"nodeType": "YulIdentifier",
																			"src": "14012:33:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "14012:63:13"
																	},
																	"nodeType": "YulExpressionStatement",
																	"src": "14012:63:13"
																}
															]
														},
														{
															"nodeType": "YulBlock",
															"src": "14095:175:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "14141:43:13",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "value",
																						"nodeType": "YulIdentifier",
																						"src": "14171:5:13"
																					},
																					{
																						"kind": "number",
																						"nodeType": "YulLiteral",
																						"src": "14178:4:13",
																						"type": "",
																						"value": "0x20"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "14167:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "14167:16:13"
																			}
																		],
																		"functionName": {
																			"name": "mload",
																			"nodeType": "YulIdentifier",
																			"src": "14161:5:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "14161:23:13"
																	},
																	"variables": [
																		{
																			"name": "memberValue0",
																			"nodeType": "YulTypedName",
																			"src": "14145:12:13",
																			"type": ""
																		}
																	]
																},
																{
																	"expression": {
																		"arguments": [
																			{
																				"name": "memberValue0",
																				"nodeType": "YulIdentifier",
																				"src": "14231:12:13"
																			},
																			{
																				"arguments": [
																					{
																						"name": "pos",
																						"nodeType": "YulIdentifier",
																						"src": "14249:3:13"
																					},
																					{
																						"kind": "number",
																						"nodeType": "YulLiteral",
																						"src": "14254:4:13",
																						"type": "",
																						"value": "0x20"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "14245:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "14245:14:13"
																			}
																		],
																		"functionName": {
																			"name": "abi_encode_t_uint256_to_t_uint256",
																			"nodeType": "YulIdentifier",
																			"src": "14197:33:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "14197:63:13"
																	},
																	"nodeType": "YulExpressionStatement",
																	"src": "14197:63:13"
																}
															]
														},
														{
															"nodeType": "YulBlock",
															"src": "14280:242:13",
															"statements": [
																{
																	"nodeType": "YulVariableDeclaration",
																	"src": "14324:43:13",
																	"value": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "value",
																						"nodeType": "YulIdentifier",
																						"src": "14354:5:13"
																					},
																					{
																						"kind": "number",
																						"nodeType": "YulLiteral",
																						"src": "14361:4:13",
																						"type": "",
																						"value": "0x40"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "14350:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "14350:16:13"
																			}
																		],
																		"functionName": {
																			"name": "mload",
																			"nodeType": "YulIdentifier",
																			"src": "14344:5:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "14344:23:13"
																	},
																	"variables": [
																		{
																			"name": "memberValue0",
																			"nodeType": "YulTypedName",
																			"src": "14328:12:13",
																			"type": ""
																		}
																	]
																},
																{
																	"expression": {
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "pos",
																						"nodeType": "YulIdentifier",
																						"src": "14392:3:13"
																					},
																					{
																						"kind": "number",
																						"nodeType": "YulLiteral",
																						"src": "14397:4:13",
																						"type": "",
																						"value": "0x40"
																					}
																				],
																				"functionName": {
																					"name": "add",
																					"nodeType": "YulIdentifier",
																					"src": "14388:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "14388:14:13"
																			},
																			{
																				"arguments": [
																					{
																						"name": "tail",
																						"nodeType": "YulIdentifier",
																						"src": "14408:4:13"
																					},
																					{
																						"name": "pos",
																						"nodeType": "YulIdentifier",
																						"src": "14414:3:13"
																					}
																				],
																				"functionName": {
																					"name": "sub",
																					"nodeType": "YulIdentifier",
																					"src": "14404:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "14404:14:13"
																			}
																		],
																		"functionName": {
																			"name": "mstore",
																			"nodeType": "YulIdentifier",
																			"src": "14381:6:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "14381:38:13"
																	},
																	"nodeType": "YulExpressionStatement",
																	"src": "14381:38:13"
																},
																{
																	"nodeType": "YulAssignment",
																	"src": "14432:79:13",
																	"value": {
																		"arguments": [
																			{
																				"name": "memberValue0",
																				"nodeType": "YulIdentifier",
																				"src": "14492:12:13"
																			},
																			{
																				"name": "tail",
																				"nodeType": "YulIdentifier",
																				"src": "14506:4:13"
																			}
																		],
																		"functionName": {
																			"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr",
																			"nodeType": "YulIdentifier",
																			"src": "14440:51:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "14440:71:13"
																	},
																	"variableNames": [
																		{
																			"name": "tail",
																			"nodeType": "YulIdentifier",
																			"src": "14432:4:13"
																		}
																	]
																}
															]
														},
														{
															"nodeType": "YulAssignment",
															"src": "14532:11:13",
															"value": {
																"name": "tail",
																"nodeType": "YulIdentifier",
																"src": "14539:4:13"
															},
															"variableNames": [
																{
																	"name": "end",
																	"nodeType": "YulIdentifier",
																	"src": "14532:3:13"
																}
															]
														}
													]
												},
												"name": "abi_encode_t_struct$_lzTxObj_$1610_memory_ptr_to_t_struct$_lzTxObj_$1610_memory_ptr_fromStack",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "13845:5:13",
														"type": ""
													},
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "13852:3:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "end",
														"nodeType": "YulTypedName",
														"src": "13861:3:13",
														"type": ""
													}
												],
												"src": "13742:807:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "14618:52:13",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "14635:3:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "value",
																				"nodeType": "YulIdentifier",
																				"src": "14657:5:13"
																			}
																		],
																		"functionName": {
																			"name": "cleanup_t_uint16",
																			"nodeType": "YulIdentifier",
																			"src": "14640:16:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "14640:23:13"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "14628:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "14628:36:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "14628:36:13"
														}
													]
												},
												"name": "abi_encode_t_uint16_to_t_uint16_fromStack",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "14606:5:13",
														"type": ""
													},
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "14613:3:13",
														"type": ""
													}
												],
												"src": "14555:115:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "14740:65:13",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "14757:3:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "value",
																				"nodeType": "YulIdentifier",
																				"src": "14792:5:13"
																			}
																		],
																		"functionName": {
																			"name": "convert_t_uint16_to_t_uint256",
																			"nodeType": "YulIdentifier",
																			"src": "14762:29:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "14762:36:13"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "14750:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "14750:49:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "14750:49:13"
														}
													]
												},
												"name": "abi_encode_t_uint16_to_t_uint256_fromStack",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "14728:5:13",
														"type": ""
													},
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "14735:3:13",
														"type": ""
													}
												],
												"src": "14676:129:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "14866:53:13",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "14883:3:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "value",
																				"nodeType": "YulIdentifier",
																				"src": "14906:5:13"
																			}
																		],
																		"functionName": {
																			"name": "cleanup_t_uint256",
																			"nodeType": "YulIdentifier",
																			"src": "14888:17:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "14888:24:13"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "14876:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "14876:37:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "14876:37:13"
														}
													]
												},
												"name": "abi_encode_t_uint256_to_t_uint256",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "14854:5:13",
														"type": ""
													},
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "14861:3:13",
														"type": ""
													}
												],
												"src": "14811:108:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "14990:53:13",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "15007:3:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "value",
																				"nodeType": "YulIdentifier",
																				"src": "15030:5:13"
																			}
																		],
																		"functionName": {
																			"name": "cleanup_t_uint256",
																			"nodeType": "YulIdentifier",
																			"src": "15012:17:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "15012:24:13"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "15000:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "15000:37:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "15000:37:13"
														}
													]
												},
												"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "14978:5:13",
														"type": ""
													},
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "14985:3:13",
														"type": ""
													}
												],
												"src": "14925:118:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "15165:140:13",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value0",
																		"nodeType": "YulIdentifier",
																		"src": "15238:6:13"
																	},
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "15247:3:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "15176:61:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "15176:75:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "15176:75:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "15260:19:13",
															"value": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "15271:3:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "15276:2:13",
																		"type": "",
																		"value": "20"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "15267:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "15267:12:13"
															},
															"variableNames": [
																{
																	"name": "pos",
																	"nodeType": "YulIdentifier",
																	"src": "15260:3:13"
																}
															]
														},
														{
															"nodeType": "YulAssignment",
															"src": "15289:10:13",
															"value": {
																"name": "pos",
																"nodeType": "YulIdentifier",
																"src": "15296:3:13"
															},
															"variableNames": [
																{
																	"name": "end",
																	"nodeType": "YulIdentifier",
																	"src": "15289:3:13"
																}
															]
														}
													]
												},
												"name": "abi_encode_tuple_packed_t_address__to_t_address__nonPadded_inplace_fromStack_reversed",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "15144:3:13",
														"type": ""
													},
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "15150:6:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "end",
														"nodeType": "YulTypedName",
														"src": "15161:3:13",
														"type": ""
													}
												],
												"src": "15049:256:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "15445:137:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "15456:100:13",
															"value": {
																"arguments": [
																	{
																		"name": "value0",
																		"nodeType": "YulIdentifier",
																		"src": "15543:6:13"
																	},
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "15552:3:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "15463:79:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "15463:93:13"
															},
															"variableNames": [
																{
																	"name": "pos",
																	"nodeType": "YulIdentifier",
																	"src": "15456:3:13"
																}
															]
														},
														{
															"nodeType": "YulAssignment",
															"src": "15566:10:13",
															"value": {
																"name": "pos",
																"nodeType": "YulIdentifier",
																"src": "15573:3:13"
															},
															"variableNames": [
																{
																	"name": "end",
																	"nodeType": "YulIdentifier",
																	"src": "15566:3:13"
																}
															]
														}
													]
												},
												"name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "15424:3:13",
														"type": ""
													},
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "15430:6:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "end",
														"nodeType": "YulTypedName",
														"src": "15441:3:13",
														"type": ""
													}
												],
												"src": "15311:271:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "15686:124:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "15696:26:13",
															"value": {
																"arguments": [
																	{
																		"name": "headStart",
																		"nodeType": "YulIdentifier",
																		"src": "15708:9:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "15719:2:13",
																		"type": "",
																		"value": "32"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "15704:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "15704:18:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "15696:4:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value0",
																		"nodeType": "YulIdentifier",
																		"src": "15776:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "15789:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "15800:1:13",
																				"type": "",
																				"value": "0"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "15785:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "15785:17:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_address_to_t_address_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "15732:43:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "15732:71:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "15732:71:13"
														}
													]
												},
												"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "15658:9:13",
														"type": ""
													},
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "15670:6:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "tail",
														"nodeType": "YulTypedName",
														"src": "15681:4:13",
														"type": ""
													}
												],
												"src": "15588:222:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "15930:140:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "15940:26:13",
															"value": {
																"arguments": [
																	{
																		"name": "headStart",
																		"nodeType": "YulIdentifier",
																		"src": "15952:9:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "15963:2:13",
																		"type": "",
																		"value": "32"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "15948:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "15948:18:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "15940:4:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value0",
																		"nodeType": "YulIdentifier",
																		"src": "16036:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "16049:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "16060:1:13",
																				"type": "",
																				"value": "0"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "16045:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "16045:17:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_address_payable_to_t_address_payable_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "15976:59:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "15976:87:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "15976:87:13"
														}
													]
												},
												"name": "abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "15902:9:13",
														"type": ""
													},
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "15914:6:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "tail",
														"nodeType": "YulTypedName",
														"src": "15925:4:13",
														"type": ""
													}
												],
												"src": "15816:254:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "16202:206:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "16212:26:13",
															"value": {
																"arguments": [
																	{
																		"name": "headStart",
																		"nodeType": "YulIdentifier",
																		"src": "16224:9:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "16235:2:13",
																		"type": "",
																		"value": "64"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "16220:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "16220:18:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "16212:4:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value0",
																		"nodeType": "YulIdentifier",
																		"src": "16292:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "16305:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "16316:1:13",
																				"type": "",
																				"value": "0"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "16301:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "16301:17:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_address_to_t_address_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "16248:43:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "16248:71:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "16248:71:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value1",
																		"nodeType": "YulIdentifier",
																		"src": "16373:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "16386:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "16397:2:13",
																				"type": "",
																				"value": "32"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "16382:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "16382:18:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_address_to_t_address_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "16329:43:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "16329:72:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "16329:72:13"
														}
													]
												},
												"name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "16166:9:13",
														"type": ""
													},
													{
														"name": "value1",
														"nodeType": "YulTypedName",
														"src": "16178:6:13",
														"type": ""
													},
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "16186:6:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "tail",
														"nodeType": "YulTypedName",
														"src": "16197:4:13",
														"type": ""
													}
												],
												"src": "16076:332:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "16568:288:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "16578:26:13",
															"value": {
																"arguments": [
																	{
																		"name": "headStart",
																		"nodeType": "YulIdentifier",
																		"src": "16590:9:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "16601:2:13",
																		"type": "",
																		"value": "96"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "16586:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "16586:18:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "16578:4:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value0",
																		"nodeType": "YulIdentifier",
																		"src": "16658:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "16671:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "16682:1:13",
																				"type": "",
																				"value": "0"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "16667:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "16667:17:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_address_to_t_address_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "16614:43:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "16614:71:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "16614:71:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value1",
																		"nodeType": "YulIdentifier",
																		"src": "16739:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "16752:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "16763:2:13",
																				"type": "",
																				"value": "32"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "16748:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "16748:18:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_address_to_t_address_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "16695:43:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "16695:72:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "16695:72:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value2",
																		"nodeType": "YulIdentifier",
																		"src": "16821:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "16834:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "16845:2:13",
																				"type": "",
																				"value": "64"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "16830:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "16830:18:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "16777:43:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "16777:72:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "16777:72:13"
														}
													]
												},
												"name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "16524:9:13",
														"type": ""
													},
													{
														"name": "value2",
														"nodeType": "YulTypedName",
														"src": "16536:6:13",
														"type": ""
													},
													{
														"name": "value1",
														"nodeType": "YulTypedName",
														"src": "16544:6:13",
														"type": ""
													},
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "16552:6:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "tail",
														"nodeType": "YulTypedName",
														"src": "16563:4:13",
														"type": ""
													}
												],
												"src": "16414:442:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "16986:204:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "16996:26:13",
															"value": {
																"arguments": [
																	{
																		"name": "headStart",
																		"nodeType": "YulIdentifier",
																		"src": "17008:9:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "17019:2:13",
																		"type": "",
																		"value": "64"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "17004:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "17004:18:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "16996:4:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value0",
																		"nodeType": "YulIdentifier",
																		"src": "17076:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "17089:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "17100:1:13",
																				"type": "",
																				"value": "0"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "17085:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "17085:17:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_address_to_t_address_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "17032:43:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "17032:71:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "17032:71:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value1",
																		"nodeType": "YulIdentifier",
																		"src": "17155:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "17168:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "17179:2:13",
																				"type": "",
																				"value": "32"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "17164:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "17164:18:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_uint16_to_t_uint16_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "17113:41:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "17113:70:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "17113:70:13"
														}
													]
												},
												"name": "abi_encode_tuple_t_address_t_uint16__to_t_address_t_uint16__fromStack_reversed",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "16950:9:13",
														"type": ""
													},
													{
														"name": "value1",
														"nodeType": "YulTypedName",
														"src": "16962:6:13",
														"type": ""
													},
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "16970:6:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "tail",
														"nodeType": "YulTypedName",
														"src": "16981:4:13",
														"type": ""
													}
												],
												"src": "16862:328:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "17322:206:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "17332:26:13",
															"value": {
																"arguments": [
																	{
																		"name": "headStart",
																		"nodeType": "YulIdentifier",
																		"src": "17344:9:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "17355:2:13",
																		"type": "",
																		"value": "64"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "17340:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "17340:18:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "17332:4:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value0",
																		"nodeType": "YulIdentifier",
																		"src": "17412:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "17425:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "17436:1:13",
																				"type": "",
																				"value": "0"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "17421:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "17421:17:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_address_to_t_address_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "17368:43:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "17368:71:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "17368:71:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value1",
																		"nodeType": "YulIdentifier",
																		"src": "17493:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "17506:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "17517:2:13",
																				"type": "",
																				"value": "32"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "17502:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "17502:18:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "17449:43:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "17449:72:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "17449:72:13"
														}
													]
												},
												"name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "17286:9:13",
														"type": ""
													},
													{
														"name": "value1",
														"nodeType": "YulTypedName",
														"src": "17298:6:13",
														"type": ""
													},
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "17306:6:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "tail",
														"nodeType": "YulTypedName",
														"src": "17317:4:13",
														"type": ""
													}
												],
												"src": "17196:332:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "17626:118:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "17636:26:13",
															"value": {
																"arguments": [
																	{
																		"name": "headStart",
																		"nodeType": "YulIdentifier",
																		"src": "17648:9:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "17659:2:13",
																		"type": "",
																		"value": "32"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "17644:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "17644:18:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "17636:4:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value0",
																		"nodeType": "YulIdentifier",
																		"src": "17710:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "17723:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "17734:1:13",
																				"type": "",
																				"value": "0"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "17719:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "17719:17:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_bool_to_t_bool_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "17672:37:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "17672:65:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "17672:65:13"
														}
													]
												},
												"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "17598:9:13",
														"type": ""
													},
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "17610:6:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "tail",
														"nodeType": "YulTypedName",
														"src": "17621:4:13",
														"type": ""
													}
												],
												"src": "17534:210:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "17868:195:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "17878:26:13",
															"value": {
																"arguments": [
																	{
																		"name": "headStart",
																		"nodeType": "YulIdentifier",
																		"src": "17890:9:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "17901:2:13",
																		"type": "",
																		"value": "32"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "17886:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "17886:18:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "17878:4:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "17925:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "17936:1:13",
																				"type": "",
																				"value": "0"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "17921:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "17921:17:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "tail",
																				"nodeType": "YulIdentifier",
																				"src": "17944:4:13"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "17950:9:13"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "17940:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "17940:20:13"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "17914:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "17914:47:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "17914:47:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "17970:86:13",
															"value": {
																"arguments": [
																	{
																		"name": "value0",
																		"nodeType": "YulIdentifier",
																		"src": "18042:6:13"
																	},
																	{
																		"name": "tail",
																		"nodeType": "YulIdentifier",
																		"src": "18051:4:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "17978:63:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "17978:78:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "17970:4:13"
																}
															]
														}
													]
												},
												"name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "17840:9:13",
														"type": ""
													},
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "17852:6:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "tail",
														"nodeType": "YulTypedName",
														"src": "17863:4:13",
														"type": ""
													}
												],
												"src": "17750:313:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "18240:248:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "18250:26:13",
															"value": {
																"arguments": [
																	{
																		"name": "headStart",
																		"nodeType": "YulIdentifier",
																		"src": "18262:9:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "18273:2:13",
																		"type": "",
																		"value": "32"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "18258:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "18258:18:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "18250:4:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "18297:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "18308:1:13",
																				"type": "",
																				"value": "0"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "18293:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "18293:17:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "tail",
																				"nodeType": "YulIdentifier",
																				"src": "18316:4:13"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "18322:9:13"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "18312:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "18312:20:13"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "18286:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "18286:47:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "18286:47:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "18342:139:13",
															"value": {
																"arguments": [
																	{
																		"name": "tail",
																		"nodeType": "YulIdentifier",
																		"src": "18476:4:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_stringliteral_0d4ae41009c51fd276653a54d7793c24f266ddc8c56ce21f8be5e2c6595ab3ac_to_t_string_memory_ptr_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "18350:124:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "18350:131:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "18342:4:13"
																}
															]
														}
													]
												},
												"name": "abi_encode_tuple_t_stringliteral_0d4ae41009c51fd276653a54d7793c24f266ddc8c56ce21f8be5e2c6595ab3ac__to_t_string_memory_ptr__fromStack_reversed",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "18220:9:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "tail",
														"nodeType": "YulTypedName",
														"src": "18235:4:13",
														"type": ""
													}
												],
												"src": "18069:419:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "18665:248:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "18675:26:13",
															"value": {
																"arguments": [
																	{
																		"name": "headStart",
																		"nodeType": "YulIdentifier",
																		"src": "18687:9:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "18698:2:13",
																		"type": "",
																		"value": "32"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "18683:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "18683:18:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "18675:4:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "18722:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "18733:1:13",
																				"type": "",
																				"value": "0"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "18718:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "18718:17:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "tail",
																				"nodeType": "YulIdentifier",
																				"src": "18741:4:13"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "18747:9:13"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "18737:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "18737:20:13"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "18711:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "18711:47:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "18711:47:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "18767:139:13",
															"value": {
																"arguments": [
																	{
																		"name": "tail",
																		"nodeType": "YulIdentifier",
																		"src": "18901:4:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "18775:124:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "18775:131:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "18767:4:13"
																}
															]
														}
													]
												},
												"name": "abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "18645:9:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "tail",
														"nodeType": "YulTypedName",
														"src": "18660:4:13",
														"type": ""
													}
												],
												"src": "18494:419:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "19264:750:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "19274:27:13",
															"value": {
																"arguments": [
																	{
																		"name": "headStart",
																		"nodeType": "YulIdentifier",
																		"src": "19286:9:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "19297:3:13",
																		"type": "",
																		"value": "224"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "19282:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "19282:19:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "19274:4:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "19322:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "19333:1:13",
																				"type": "",
																				"value": "0"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "19318:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "19318:17:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "tail",
																				"nodeType": "YulIdentifier",
																				"src": "19341:4:13"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "19347:9:13"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "19337:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "19337:20:13"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "19311:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "19311:47:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "19311:47:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "19367:139:13",
															"value": {
																"arguments": [
																	{
																		"name": "tail",
																		"nodeType": "YulIdentifier",
																		"src": "19501:4:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_stringliteral_6ba4f45f593ebc3b0035188aa4ba0c82f39a70f583863862aab89e6ae77de4d9_to_t_string_memory_ptr_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "19375:124:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "19375:131:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "19367:4:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value0",
																		"nodeType": "YulIdentifier",
																		"src": "19560:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "19573:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "19584:2:13",
																				"type": "",
																				"value": "32"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "19569:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "19569:18:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_address_to_t_address_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "19516:43:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "19516:72:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "19516:72:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value1",
																		"nodeType": "YulIdentifier",
																		"src": "19642:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "19655:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "19666:2:13",
																				"type": "",
																				"value": "64"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "19651:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "19651:18:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_address_to_t_address_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "19598:43:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "19598:72:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "19598:72:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value2",
																		"nodeType": "YulIdentifier",
																		"src": "19724:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "19737:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "19748:2:13",
																				"type": "",
																				"value": "96"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "19733:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "19733:18:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_address_to_t_address_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "19680:43:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "19680:72:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "19680:72:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value3",
																		"nodeType": "YulIdentifier",
																		"src": "19814:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "19827:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "19838:3:13",
																				"type": "",
																				"value": "128"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "19823:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "19823:19:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_address_payable_to_t_address_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "19762:51:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "19762:81:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "19762:81:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value4",
																		"nodeType": "YulIdentifier",
																		"src": "19897:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "19910:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "19921:3:13",
																				"type": "",
																				"value": "160"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "19906:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "19906:19:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "19853:43:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "19853:73:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "19853:73:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value5",
																		"nodeType": "YulIdentifier",
																		"src": "19978:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "19991:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "20002:3:13",
																				"type": "",
																				"value": "192"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "19987:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "19987:19:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_uint16_to_t_uint16_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "19936:41:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "19936:71:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "19936:71:13"
														}
													]
												},
												"name": "abi_encode_tuple_t_stringliteral_6ba4f45f593ebc3b0035188aa4ba0c82f39a70f583863862aab89e6ae77de4d9_t_address_t_address_t_address_t_address_payable_t_uint256_t_uint16__to_t_string_memory_ptr_t_address_t_address_t_address_t_address_t_uint256_t_uint16__fromStack_reversed",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "19196:9:13",
														"type": ""
													},
													{
														"name": "value5",
														"nodeType": "YulTypedName",
														"src": "19208:6:13",
														"type": ""
													},
													{
														"name": "value4",
														"nodeType": "YulTypedName",
														"src": "19216:6:13",
														"type": ""
													},
													{
														"name": "value3",
														"nodeType": "YulTypedName",
														"src": "19224:6:13",
														"type": ""
													},
													{
														"name": "value2",
														"nodeType": "YulTypedName",
														"src": "19232:6:13",
														"type": ""
													},
													{
														"name": "value1",
														"nodeType": "YulTypedName",
														"src": "19240:6:13",
														"type": ""
													},
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "19248:6:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "tail",
														"nodeType": "YulTypedName",
														"src": "19259:4:13",
														"type": ""
													}
												],
												"src": "18919:1095:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "20191:248:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "20201:26:13",
															"value": {
																"arguments": [
																	{
																		"name": "headStart",
																		"nodeType": "YulIdentifier",
																		"src": "20213:9:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "20224:2:13",
																		"type": "",
																		"value": "32"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "20209:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "20209:18:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "20201:4:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "20248:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "20259:1:13",
																				"type": "",
																				"value": "0"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "20244:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "20244:17:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "tail",
																				"nodeType": "YulIdentifier",
																				"src": "20267:4:13"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "20273:9:13"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "20263:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "20263:20:13"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "20237:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "20237:47:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "20237:47:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "20293:139:13",
															"value": {
																"arguments": [
																	{
																		"name": "tail",
																		"nodeType": "YulIdentifier",
																		"src": "20427:4:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "20301:124:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "20301:131:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "20293:4:13"
																}
															]
														}
													]
												},
												"name": "abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "20171:9:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "tail",
														"nodeType": "YulTypedName",
														"src": "20186:4:13",
														"type": ""
													}
												],
												"src": "20020:419:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "20616:248:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "20626:26:13",
															"value": {
																"arguments": [
																	{
																		"name": "headStart",
																		"nodeType": "YulIdentifier",
																		"src": "20638:9:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "20649:2:13",
																		"type": "",
																		"value": "32"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "20634:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "20634:18:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "20626:4:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "20673:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "20684:1:13",
																				"type": "",
																				"value": "0"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "20669:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "20669:17:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "tail",
																				"nodeType": "YulIdentifier",
																				"src": "20692:4:13"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "20698:9:13"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "20688:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "20688:20:13"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "20662:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "20662:47:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "20662:47:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "20718:139:13",
															"value": {
																"arguments": [
																	{
																		"name": "tail",
																		"nodeType": "YulIdentifier",
																		"src": "20852:4:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "20726:124:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "20726:131:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "20718:4:13"
																}
															]
														}
													]
												},
												"name": "abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "20596:9:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "tail",
														"nodeType": "YulTypedName",
														"src": "20611:4:13",
														"type": ""
													}
												],
												"src": "20445:419:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "21041:248:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "21051:26:13",
															"value": {
																"arguments": [
																	{
																		"name": "headStart",
																		"nodeType": "YulIdentifier",
																		"src": "21063:9:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "21074:2:13",
																		"type": "",
																		"value": "32"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "21059:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "21059:18:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "21051:4:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "21098:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "21109:1:13",
																				"type": "",
																				"value": "0"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "21094:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "21094:17:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "tail",
																				"nodeType": "YulIdentifier",
																				"src": "21117:4:13"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "21123:9:13"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "21113:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "21113:20:13"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "21087:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "21087:47:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "21087:47:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "21143:139:13",
															"value": {
																"arguments": [
																	{
																		"name": "tail",
																		"nodeType": "YulIdentifier",
																		"src": "21277:4:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25_to_t_string_memory_ptr_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "21151:124:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "21151:131:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "21143:4:13"
																}
															]
														}
													]
												},
												"name": "abi_encode_tuple_t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25__to_t_string_memory_ptr__fromStack_reversed",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "21021:9:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "tail",
														"nodeType": "YulTypedName",
														"src": "21036:4:13",
														"type": ""
													}
												],
												"src": "20870:419:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "21447:286:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "21457:26:13",
															"value": {
																"arguments": [
																	{
																		"name": "headStart",
																		"nodeType": "YulIdentifier",
																		"src": "21469:9:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "21480:2:13",
																		"type": "",
																		"value": "96"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "21465:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "21465:18:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "21457:4:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value0",
																		"nodeType": "YulIdentifier",
																		"src": "21535:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "21548:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "21559:1:13",
																				"type": "",
																				"value": "0"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "21544:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "21544:17:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_uint16_to_t_uint16_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "21493:41:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "21493:69:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "21493:69:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value1",
																		"nodeType": "YulIdentifier",
																		"src": "21616:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "21629:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "21640:2:13",
																				"type": "",
																				"value": "32"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "21625:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "21625:18:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_address_to_t_address_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "21572:43:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "21572:72:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "21572:72:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value2",
																		"nodeType": "YulIdentifier",
																		"src": "21698:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "21711:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "21722:2:13",
																				"type": "",
																				"value": "64"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "21707:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "21707:18:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "21654:43:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "21654:72:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "21654:72:13"
														}
													]
												},
												"name": "abi_encode_tuple_t_uint16_t_address_t_uint256__to_t_uint16_t_address_t_uint256__fromStack_reversed",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "21403:9:13",
														"type": ""
													},
													{
														"name": "value2",
														"nodeType": "YulTypedName",
														"src": "21415:6:13",
														"type": ""
													},
													{
														"name": "value1",
														"nodeType": "YulTypedName",
														"src": "21423:6:13",
														"type": ""
													},
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "21431:6:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "tail",
														"nodeType": "YulTypedName",
														"src": "21442:4:13",
														"type": ""
													}
												],
												"src": "21295:438:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "22093:751:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "22103:27:13",
															"value": {
																"arguments": [
																	{
																		"name": "headStart",
																		"nodeType": "YulIdentifier",
																		"src": "22115:9:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "22126:3:13",
																		"type": "",
																		"value": "160"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "22111:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "22111:19:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "22103:4:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value0",
																		"nodeType": "YulIdentifier",
																		"src": "22182:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "22195:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "22206:1:13",
																				"type": "",
																				"value": "0"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "22191:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "22191:17:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_uint16_to_t_uint16_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "22140:41:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "22140:69:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "22140:69:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value1",
																		"nodeType": "YulIdentifier",
																		"src": "22269:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "22282:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "22293:2:13",
																				"type": "",
																				"value": "32"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "22278:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "22278:18:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_rational_1_by_1_to_t_uint8_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "22219:49:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "22219:78:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "22219:78:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "22318:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "22329:2:13",
																				"type": "",
																				"value": "64"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "22314:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "22314:18:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "tail",
																				"nodeType": "YulIdentifier",
																				"src": "22338:4:13"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "22344:9:13"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "22334:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "22334:20:13"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "22307:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "22307:48:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "22307:48:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "22364:84:13",
															"value": {
																"arguments": [
																	{
																		"name": "value2",
																		"nodeType": "YulIdentifier",
																		"src": "22434:6:13"
																	},
																	{
																		"name": "tail",
																		"nodeType": "YulIdentifier",
																		"src": "22443:4:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "22372:61:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "22372:76:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "22364:4:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "22469:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "22480:2:13",
																				"type": "",
																				"value": "96"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "22465:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "22465:18:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "tail",
																				"nodeType": "YulIdentifier",
																				"src": "22489:4:13"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "22495:9:13"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "22485:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "22485:20:13"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "22458:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "22458:48:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "22458:48:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "22515:138:13",
															"value": {
																"arguments": [
																	{
																		"name": "tail",
																		"nodeType": "YulIdentifier",
																		"src": "22648:4:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837_to_t_bytes_memory_ptr_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "22523:123:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "22523:130:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "22515:4:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "22674:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "22685:3:13",
																				"type": "",
																				"value": "128"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "22670:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "22670:19:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "tail",
																				"nodeType": "YulIdentifier",
																				"src": "22695:4:13"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "22701:9:13"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "22691:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "22691:20:13"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "22663:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "22663:49:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "22663:49:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "22721:116:13",
															"value": {
																"arguments": [
																	{
																		"name": "value3",
																		"nodeType": "YulIdentifier",
																		"src": "22823:6:13"
																	},
																	{
																		"name": "tail",
																		"nodeType": "YulIdentifier",
																		"src": "22832:4:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_struct$_lzTxObj_$1610_memory_ptr_to_t_struct$_lzTxObj_$1610_memory_ptr_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "22729:93:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "22729:108:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "22721:4:13"
																}
															]
														}
													]
												},
												"name": "abi_encode_tuple_t_uint16_t_rational_1_by_1_t_bytes_memory_ptr_t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837_t_struct$_lzTxObj_$1610_memory_ptr__to_t_uint16_t_uint8_t_bytes_memory_ptr_t_bytes_memory_ptr_t_struct$_lzTxObj_$1610_memory_ptr__fromStack_reversed",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "22041:9:13",
														"type": ""
													},
													{
														"name": "value3",
														"nodeType": "YulTypedName",
														"src": "22053:6:13",
														"type": ""
													},
													{
														"name": "value2",
														"nodeType": "YulTypedName",
														"src": "22061:6:13",
														"type": ""
													},
													{
														"name": "value1",
														"nodeType": "YulTypedName",
														"src": "22069:6:13",
														"type": ""
													},
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "22077:6:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "tail",
														"nodeType": "YulTypedName",
														"src": "22088:4:13",
														"type": ""
													}
												],
												"src": "21739:1105:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "23270:1037:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "23280:27:13",
															"value": {
																"arguments": [
																	{
																		"name": "headStart",
																		"nodeType": "YulIdentifier",
																		"src": "23292:9:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "23303:3:13",
																		"type": "",
																		"value": "288"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "23288:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "23288:19:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "23280:4:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value0",
																		"nodeType": "YulIdentifier",
																		"src": "23359:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "23372:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "23383:1:13",
																				"type": "",
																				"value": "0"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "23368:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "23368:17:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_uint16_to_t_uint16_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "23317:41:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "23317:69:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "23317:69:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value1",
																		"nodeType": "YulIdentifier",
																		"src": "23439:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "23452:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "23463:2:13",
																				"type": "",
																				"value": "32"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "23448:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "23448:18:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_uint16_to_t_uint256_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "23396:42:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "23396:71:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "23396:71:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value2",
																		"nodeType": "YulIdentifier",
																		"src": "23520:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "23533:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "23544:2:13",
																				"type": "",
																				"value": "64"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "23529:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "23529:18:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_uint16_to_t_uint256_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "23477:42:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "23477:71:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "23477:71:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value3",
																		"nodeType": "YulIdentifier",
																		"src": "23618:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "23631:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "23642:2:13",
																				"type": "",
																				"value": "96"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "23627:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "23627:18:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_address_payable_to_t_address_payable_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "23558:59:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "23558:88:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "23558:88:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value4",
																		"nodeType": "YulIdentifier",
																		"src": "23700:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "23713:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "23724:3:13",
																				"type": "",
																				"value": "128"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "23709:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "23709:19:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "23656:43:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "23656:73:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "23656:73:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value5",
																		"nodeType": "YulIdentifier",
																		"src": "23783:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "23796:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "23807:3:13",
																				"type": "",
																				"value": "160"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "23792:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "23792:19:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "23739:43:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "23739:73:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "23739:73:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "23833:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "23844:3:13",
																				"type": "",
																				"value": "192"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "23829:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "23829:19:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "tail",
																				"nodeType": "YulIdentifier",
																				"src": "23854:4:13"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "23860:9:13"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "23850:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "23850:20:13"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "23822:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "23822:49:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "23822:49:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "23880:116:13",
															"value": {
																"arguments": [
																	{
																		"name": "value6",
																		"nodeType": "YulIdentifier",
																		"src": "23982:6:13"
																	},
																	{
																		"name": "tail",
																		"nodeType": "YulIdentifier",
																		"src": "23991:4:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_struct$_lzTxObj_$1610_memory_ptr_to_t_struct$_lzTxObj_$1610_memory_ptr_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "23888:93:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "23888:108:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "23880:4:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "24017:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "24028:3:13",
																				"type": "",
																				"value": "224"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "24013:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "24013:19:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "tail",
																				"nodeType": "YulIdentifier",
																				"src": "24038:4:13"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "24044:9:13"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "24034:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "24034:20:13"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "24006:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "24006:49:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "24006:49:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "24064:84:13",
															"value": {
																"arguments": [
																	{
																		"name": "value7",
																		"nodeType": "YulIdentifier",
																		"src": "24134:6:13"
																	},
																	{
																		"name": "tail",
																		"nodeType": "YulIdentifier",
																		"src": "24143:4:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "24072:61:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "24072:76:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "24064:4:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "24169:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "24180:3:13",
																				"type": "",
																				"value": "256"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "24165:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "24165:19:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "tail",
																				"nodeType": "YulIdentifier",
																				"src": "24190:4:13"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "24196:9:13"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "24186:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "24186:20:13"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "24158:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "24158:49:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "24158:49:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "24216:84:13",
															"value": {
																"arguments": [
																	{
																		"name": "value8",
																		"nodeType": "YulIdentifier",
																		"src": "24286:6:13"
																	},
																	{
																		"name": "tail",
																		"nodeType": "YulIdentifier",
																		"src": "24295:4:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "24224:61:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "24224:76:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "24216:4:13"
																}
															]
														}
													]
												},
												"name": "abi_encode_tuple_t_uint16_t_uint16_t_uint16_t_address_payable_t_uint256_t_uint256_t_struct$_lzTxObj_$1610_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_uint16_t_uint256_t_uint256_t_address_payable_t_uint256_t_uint256_t_struct$_lzTxObj_$1610_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "23178:9:13",
														"type": ""
													},
													{
														"name": "value8",
														"nodeType": "YulTypedName",
														"src": "23190:6:13",
														"type": ""
													},
													{
														"name": "value7",
														"nodeType": "YulTypedName",
														"src": "23198:6:13",
														"type": ""
													},
													{
														"name": "value6",
														"nodeType": "YulTypedName",
														"src": "23206:6:13",
														"type": ""
													},
													{
														"name": "value5",
														"nodeType": "YulTypedName",
														"src": "23214:6:13",
														"type": ""
													},
													{
														"name": "value4",
														"nodeType": "YulTypedName",
														"src": "23222:6:13",
														"type": ""
													},
													{
														"name": "value3",
														"nodeType": "YulTypedName",
														"src": "23230:6:13",
														"type": ""
													},
													{
														"name": "value2",
														"nodeType": "YulTypedName",
														"src": "23238:6:13",
														"type": ""
													},
													{
														"name": "value1",
														"nodeType": "YulTypedName",
														"src": "23246:6:13",
														"type": ""
													},
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "23254:6:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "tail",
														"nodeType": "YulTypedName",
														"src": "23265:4:13",
														"type": ""
													}
												],
												"src": "22850:1457:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "24411:124:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "24421:26:13",
															"value": {
																"arguments": [
																	{
																		"name": "headStart",
																		"nodeType": "YulIdentifier",
																		"src": "24433:9:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "24444:2:13",
																		"type": "",
																		"value": "32"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "24429:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "24429:18:13"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "24421:4:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "value0",
																		"nodeType": "YulIdentifier",
																		"src": "24501:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "24514:9:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "24525:1:13",
																				"type": "",
																				"value": "0"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "24510:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "24510:17:13"
																	}
																],
																"functionName": {
																	"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
																	"nodeType": "YulIdentifier",
																	"src": "24457:43:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "24457:71:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "24457:71:13"
														}
													]
												},
												"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "24383:9:13",
														"type": ""
													},
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "24395:6:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "tail",
														"nodeType": "YulTypedName",
														"src": "24406:4:13",
														"type": ""
													}
												],
												"src": "24313:222:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "24582:88:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "24592:30:13",
															"value": {
																"arguments": [],
																"functionName": {
																	"name": "allocate_unbounded",
																	"nodeType": "YulIdentifier",
																	"src": "24602:18:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "24602:20:13"
															},
															"variableNames": [
																{
																	"name": "memPtr",
																	"nodeType": "YulIdentifier",
																	"src": "24592:6:13"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "memPtr",
																		"nodeType": "YulIdentifier",
																		"src": "24651:6:13"
																	},
																	{
																		"name": "size",
																		"nodeType": "YulIdentifier",
																		"src": "24659:4:13"
																	}
																],
																"functionName": {
																	"name": "finalize_allocation",
																	"nodeType": "YulIdentifier",
																	"src": "24631:19:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "24631:33:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "24631:33:13"
														}
													]
												},
												"name": "allocate_memory",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "size",
														"nodeType": "YulTypedName",
														"src": "24566:4:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "memPtr",
														"nodeType": "YulTypedName",
														"src": "24575:6:13",
														"type": ""
													}
												],
												"src": "24541:129:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "24716:35:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "24726:19:13",
															"value": {
																"arguments": [
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "24742:2:13",
																		"type": "",
																		"value": "64"
																	}
																],
																"functionName": {
																	"name": "mload",
																	"nodeType": "YulIdentifier",
																	"src": "24736:5:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "24736:9:13"
															},
															"variableNames": [
																{
																	"name": "memPtr",
																	"nodeType": "YulIdentifier",
																	"src": "24726:6:13"
																}
															]
														}
													]
												},
												"name": "allocate_unbounded",
												"nodeType": "YulFunctionDefinition",
												"returnVariables": [
													{
														"name": "memPtr",
														"nodeType": "YulTypedName",
														"src": "24709:6:13",
														"type": ""
													}
												],
												"src": "24676:75:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "24823:241:13",
													"statements": [
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "24928:22:13",
																"statements": [
																	{
																		"expression": {
																			"arguments": [],
																			"functionName": {
																				"name": "panic_error_0x41",
																				"nodeType": "YulIdentifier",
																				"src": "24930:16:13"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "24930:18:13"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "24930:18:13"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"name": "length",
																		"nodeType": "YulIdentifier",
																		"src": "24900:6:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "24908:18:13",
																		"type": "",
																		"value": "0xffffffffffffffff"
																	}
																],
																"functionName": {
																	"name": "gt",
																	"nodeType": "YulIdentifier",
																	"src": "24897:2:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "24897:30:13"
															},
															"nodeType": "YulIf",
															"src": "24894:2:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "24960:37:13",
															"value": {
																"arguments": [
																	{
																		"name": "length",
																		"nodeType": "YulIdentifier",
																		"src": "24990:6:13"
																	}
																],
																"functionName": {
																	"name": "round_up_to_mul_of_32",
																	"nodeType": "YulIdentifier",
																	"src": "24968:21:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "24968:29:13"
															},
															"variableNames": [
																{
																	"name": "size",
																	"nodeType": "YulIdentifier",
																	"src": "24960:4:13"
																}
															]
														},
														{
															"nodeType": "YulAssignment",
															"src": "25034:23:13",
															"value": {
																"arguments": [
																	{
																		"name": "size",
																		"nodeType": "YulIdentifier",
																		"src": "25046:4:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "25052:4:13",
																		"type": "",
																		"value": "0x20"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "25042:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "25042:15:13"
															},
															"variableNames": [
																{
																	"name": "size",
																	"nodeType": "YulIdentifier",
																	"src": "25034:4:13"
																}
															]
														}
													]
												},
												"name": "array_allocation_size_t_bytes_memory_ptr",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "length",
														"nodeType": "YulTypedName",
														"src": "24807:6:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "size",
														"nodeType": "YulTypedName",
														"src": "24818:4:13",
														"type": ""
													}
												],
												"src": "24757:307:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "25128:40:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "25139:22:13",
															"value": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "25155:5:13"
																	}
																],
																"functionName": {
																	"name": "mload",
																	"nodeType": "YulIdentifier",
																	"src": "25149:5:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "25149:12:13"
															},
															"variableNames": [
																{
																	"name": "length",
																	"nodeType": "YulIdentifier",
																	"src": "25139:6:13"
																}
															]
														}
													]
												},
												"name": "array_length_t_bytes_memory_ptr",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "25111:5:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "length",
														"nodeType": "YulTypedName",
														"src": "25121:6:13",
														"type": ""
													}
												],
												"src": "25070:98:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "25233:40:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "25244:22:13",
															"value": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "25260:5:13"
																	}
																],
																"functionName": {
																	"name": "mload",
																	"nodeType": "YulIdentifier",
																	"src": "25254:5:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "25254:12:13"
															},
															"variableNames": [
																{
																	"name": "length",
																	"nodeType": "YulIdentifier",
																	"src": "25244:6:13"
																}
															]
														}
													]
												},
												"name": "array_length_t_string_memory_ptr",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "25216:5:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "length",
														"nodeType": "YulTypedName",
														"src": "25226:6:13",
														"type": ""
													}
												],
												"src": "25174:99:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "25364:73:13",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "25381:3:13"
																	},
																	{
																		"name": "length",
																		"nodeType": "YulIdentifier",
																		"src": "25386:6:13"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "25374:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "25374:19:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "25374:19:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "25402:29:13",
															"value": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "25421:3:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "25426:4:13",
																		"type": "",
																		"value": "0x20"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "25417:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "25417:14:13"
															},
															"variableNames": [
																{
																	"name": "updated_pos",
																	"nodeType": "YulIdentifier",
																	"src": "25402:11:13"
																}
															]
														}
													]
												},
												"name": "array_storeLengthForEncoding_t_bytes_memory_ptr",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "25336:3:13",
														"type": ""
													},
													{
														"name": "length",
														"nodeType": "YulTypedName",
														"src": "25341:6:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "updated_pos",
														"nodeType": "YulTypedName",
														"src": "25352:11:13",
														"type": ""
													}
												],
												"src": "25279:158:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "25538:73:13",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "25555:3:13"
																	},
																	{
																		"name": "length",
																		"nodeType": "YulIdentifier",
																		"src": "25560:6:13"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "25548:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "25548:19:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "25548:19:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "25576:29:13",
															"value": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "25595:3:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "25600:4:13",
																		"type": "",
																		"value": "0x20"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "25591:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "25591:14:13"
															},
															"variableNames": [
																{
																	"name": "updated_pos",
																	"nodeType": "YulIdentifier",
																	"src": "25576:11:13"
																}
															]
														}
													]
												},
												"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "25510:3:13",
														"type": ""
													},
													{
														"name": "length",
														"nodeType": "YulTypedName",
														"src": "25515:6:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "updated_pos",
														"nodeType": "YulTypedName",
														"src": "25526:11:13",
														"type": ""
													}
												],
												"src": "25443:168:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "25730:34:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "25740:18:13",
															"value": {
																"name": "pos",
																"nodeType": "YulIdentifier",
																"src": "25755:3:13"
															},
															"variableNames": [
																{
																	"name": "updated_pos",
																	"nodeType": "YulIdentifier",
																	"src": "25740:11:13"
																}
															]
														}
													]
												},
												"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "25702:3:13",
														"type": ""
													},
													{
														"name": "length",
														"nodeType": "YulTypedName",
														"src": "25707:6:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "updated_pos",
														"nodeType": "YulTypedName",
														"src": "25718:11:13",
														"type": ""
													}
												],
												"src": "25617:147:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "25866:73:13",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "25883:3:13"
																	},
																	{
																		"name": "length",
																		"nodeType": "YulIdentifier",
																		"src": "25888:6:13"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "25876:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "25876:19:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "25876:19:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "25904:29:13",
															"value": {
																"arguments": [
																	{
																		"name": "pos",
																		"nodeType": "YulIdentifier",
																		"src": "25923:3:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "25928:4:13",
																		"type": "",
																		"value": "0x20"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "25919:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "25919:14:13"
															},
															"variableNames": [
																{
																	"name": "updated_pos",
																	"nodeType": "YulIdentifier",
																	"src": "25904:11:13"
																}
															]
														}
													]
												},
												"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "pos",
														"nodeType": "YulTypedName",
														"src": "25838:3:13",
														"type": ""
													},
													{
														"name": "length",
														"nodeType": "YulTypedName",
														"src": "25843:6:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "updated_pos",
														"nodeType": "YulTypedName",
														"src": "25854:11:13",
														"type": ""
													}
												],
												"src": "25770:169:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "25987:143:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "25997:25:13",
															"value": {
																"arguments": [
																	{
																		"name": "x",
																		"nodeType": "YulIdentifier",
																		"src": "26020:1:13"
																	}
																],
																"functionName": {
																	"name": "cleanup_t_uint256",
																	"nodeType": "YulIdentifier",
																	"src": "26002:17:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "26002:20:13"
															},
															"variableNames": [
																{
																	"name": "x",
																	"nodeType": "YulIdentifier",
																	"src": "25997:1:13"
																}
															]
														},
														{
															"nodeType": "YulAssignment",
															"src": "26031:25:13",
															"value": {
																"arguments": [
																	{
																		"name": "y",
																		"nodeType": "YulIdentifier",
																		"src": "26054:1:13"
																	}
																],
																"functionName": {
																	"name": "cleanup_t_uint256",
																	"nodeType": "YulIdentifier",
																	"src": "26036:17:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "26036:20:13"
															},
															"variableNames": [
																{
																	"name": "y",
																	"nodeType": "YulIdentifier",
																	"src": "26031:1:13"
																}
															]
														},
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "26078:22:13",
																"statements": [
																	{
																		"expression": {
																			"arguments": [],
																			"functionName": {
																				"name": "panic_error_0x12",
																				"nodeType": "YulIdentifier",
																				"src": "26080:16:13"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "26080:18:13"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "26080:18:13"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"name": "y",
																		"nodeType": "YulIdentifier",
																		"src": "26075:1:13"
																	}
																],
																"functionName": {
																	"name": "iszero",
																	"nodeType": "YulIdentifier",
																	"src": "26068:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "26068:9:13"
															},
															"nodeType": "YulIf",
															"src": "26065:2:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "26110:14:13",
															"value": {
																"arguments": [
																	{
																		"name": "x",
																		"nodeType": "YulIdentifier",
																		"src": "26119:1:13"
																	},
																	{
																		"name": "y",
																		"nodeType": "YulIdentifier",
																		"src": "26122:1:13"
																	}
																],
																"functionName": {
																	"name": "div",
																	"nodeType": "YulIdentifier",
																	"src": "26115:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "26115:9:13"
															},
															"variableNames": [
																{
																	"name": "r",
																	"nodeType": "YulIdentifier",
																	"src": "26110:1:13"
																}
															]
														}
													]
												},
												"name": "checked_div_t_uint256",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "x",
														"nodeType": "YulTypedName",
														"src": "25976:1:13",
														"type": ""
													},
													{
														"name": "y",
														"nodeType": "YulTypedName",
														"src": "25979:1:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "r",
														"nodeType": "YulTypedName",
														"src": "25985:1:13",
														"type": ""
													}
												],
												"src": "25945:185:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "26184:300:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "26194:25:13",
															"value": {
																"arguments": [
																	{
																		"name": "x",
																		"nodeType": "YulIdentifier",
																		"src": "26217:1:13"
																	}
																],
																"functionName": {
																	"name": "cleanup_t_uint256",
																	"nodeType": "YulIdentifier",
																	"src": "26199:17:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "26199:20:13"
															},
															"variableNames": [
																{
																	"name": "x",
																	"nodeType": "YulIdentifier",
																	"src": "26194:1:13"
																}
															]
														},
														{
															"nodeType": "YulAssignment",
															"src": "26228:25:13",
															"value": {
																"arguments": [
																	{
																		"name": "y",
																		"nodeType": "YulIdentifier",
																		"src": "26251:1:13"
																	}
																],
																"functionName": {
																	"name": "cleanup_t_uint256",
																	"nodeType": "YulIdentifier",
																	"src": "26233:17:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "26233:20:13"
															},
															"variableNames": [
																{
																	"name": "y",
																	"nodeType": "YulIdentifier",
																	"src": "26228:1:13"
																}
															]
														},
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "26426:22:13",
																"statements": [
																	{
																		"expression": {
																			"arguments": [],
																			"functionName": {
																				"name": "panic_error_0x11",
																				"nodeType": "YulIdentifier",
																				"src": "26428:16:13"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "26428:18:13"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "26428:18:13"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "x",
																						"nodeType": "YulIdentifier",
																						"src": "26338:1:13"
																					}
																				],
																				"functionName": {
																					"name": "iszero",
																					"nodeType": "YulIdentifier",
																					"src": "26331:6:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "26331:9:13"
																			}
																		],
																		"functionName": {
																			"name": "iszero",
																			"nodeType": "YulIdentifier",
																			"src": "26324:6:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "26324:17:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "y",
																				"nodeType": "YulIdentifier",
																				"src": "26346:1:13"
																			},
																			{
																				"arguments": [
																					{
																						"kind": "number",
																						"nodeType": "YulLiteral",
																						"src": "26353:66:13",
																						"type": "",
																						"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
																					},
																					{
																						"name": "x",
																						"nodeType": "YulIdentifier",
																						"src": "26421:1:13"
																					}
																				],
																				"functionName": {
																					"name": "div",
																					"nodeType": "YulIdentifier",
																					"src": "26349:3:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "26349:74:13"
																			}
																		],
																		"functionName": {
																			"name": "gt",
																			"nodeType": "YulIdentifier",
																			"src": "26343:2:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "26343:81:13"
																	}
																],
																"functionName": {
																	"name": "and",
																	"nodeType": "YulIdentifier",
																	"src": "26320:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "26320:105:13"
															},
															"nodeType": "YulIf",
															"src": "26317:2:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "26458:20:13",
															"value": {
																"arguments": [
																	{
																		"name": "x",
																		"nodeType": "YulIdentifier",
																		"src": "26473:1:13"
																	},
																	{
																		"name": "y",
																		"nodeType": "YulIdentifier",
																		"src": "26476:1:13"
																	}
																],
																"functionName": {
																	"name": "mul",
																	"nodeType": "YulIdentifier",
																	"src": "26469:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "26469:9:13"
															},
															"variableNames": [
																{
																	"name": "product",
																	"nodeType": "YulIdentifier",
																	"src": "26458:7:13"
																}
															]
														}
													]
												},
												"name": "checked_mul_t_uint256",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "x",
														"nodeType": "YulTypedName",
														"src": "26167:1:13",
														"type": ""
													},
													{
														"name": "y",
														"nodeType": "YulTypedName",
														"src": "26170:1:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "product",
														"nodeType": "YulTypedName",
														"src": "26176:7:13",
														"type": ""
													}
												],
												"src": "26136:348:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "26535:146:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "26545:25:13",
															"value": {
																"arguments": [
																	{
																		"name": "x",
																		"nodeType": "YulIdentifier",
																		"src": "26568:1:13"
																	}
																],
																"functionName": {
																	"name": "cleanup_t_uint256",
																	"nodeType": "YulIdentifier",
																	"src": "26550:17:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "26550:20:13"
															},
															"variableNames": [
																{
																	"name": "x",
																	"nodeType": "YulIdentifier",
																	"src": "26545:1:13"
																}
															]
														},
														{
															"nodeType": "YulAssignment",
															"src": "26579:25:13",
															"value": {
																"arguments": [
																	{
																		"name": "y",
																		"nodeType": "YulIdentifier",
																		"src": "26602:1:13"
																	}
																],
																"functionName": {
																	"name": "cleanup_t_uint256",
																	"nodeType": "YulIdentifier",
																	"src": "26584:17:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "26584:20:13"
															},
															"variableNames": [
																{
																	"name": "y",
																	"nodeType": "YulIdentifier",
																	"src": "26579:1:13"
																}
															]
														},
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "26626:22:13",
																"statements": [
																	{
																		"expression": {
																			"arguments": [],
																			"functionName": {
																				"name": "panic_error_0x11",
																				"nodeType": "YulIdentifier",
																				"src": "26628:16:13"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "26628:18:13"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "26628:18:13"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"name": "x",
																		"nodeType": "YulIdentifier",
																		"src": "26620:1:13"
																	},
																	{
																		"name": "y",
																		"nodeType": "YulIdentifier",
																		"src": "26623:1:13"
																	}
																],
																"functionName": {
																	"name": "lt",
																	"nodeType": "YulIdentifier",
																	"src": "26617:2:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "26617:8:13"
															},
															"nodeType": "YulIf",
															"src": "26614:2:13"
														},
														{
															"nodeType": "YulAssignment",
															"src": "26658:17:13",
															"value": {
																"arguments": [
																	{
																		"name": "x",
																		"nodeType": "YulIdentifier",
																		"src": "26670:1:13"
																	},
																	{
																		"name": "y",
																		"nodeType": "YulIdentifier",
																		"src": "26673:1:13"
																	}
																],
																"functionName": {
																	"name": "sub",
																	"nodeType": "YulIdentifier",
																	"src": "26666:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "26666:9:13"
															},
															"variableNames": [
																{
																	"name": "diff",
																	"nodeType": "YulIdentifier",
																	"src": "26658:4:13"
																}
															]
														}
													]
												},
												"name": "checked_sub_t_uint256",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "x",
														"nodeType": "YulTypedName",
														"src": "26521:1:13",
														"type": ""
													},
													{
														"name": "y",
														"nodeType": "YulTypedName",
														"src": "26524:1:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "diff",
														"nodeType": "YulTypedName",
														"src": "26530:4:13",
														"type": ""
													}
												],
												"src": "26490:191:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "26732:51:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "26742:35:13",
															"value": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "26771:5:13"
																	}
																],
																"functionName": {
																	"name": "cleanup_t_uint160",
																	"nodeType": "YulIdentifier",
																	"src": "26753:17:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "26753:24:13"
															},
															"variableNames": [
																{
																	"name": "cleaned",
																	"nodeType": "YulIdentifier",
																	"src": "26742:7:13"
																}
															]
														}
													]
												},
												"name": "cleanup_t_address",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "26714:5:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "cleaned",
														"nodeType": "YulTypedName",
														"src": "26724:7:13",
														"type": ""
													}
												],
												"src": "26687:96:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "26842:51:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "26852:35:13",
															"value": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "26881:5:13"
																	}
																],
																"functionName": {
																	"name": "cleanup_t_uint160",
																	"nodeType": "YulIdentifier",
																	"src": "26863:17:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "26863:24:13"
															},
															"variableNames": [
																{
																	"name": "cleaned",
																	"nodeType": "YulIdentifier",
																	"src": "26852:7:13"
																}
															]
														}
													]
												},
												"name": "cleanup_t_address_payable",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "26824:5:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "cleaned",
														"nodeType": "YulTypedName",
														"src": "26834:7:13",
														"type": ""
													}
												],
												"src": "26789:104:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "26941:48:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "26951:32:13",
															"value": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "value",
																				"nodeType": "YulIdentifier",
																				"src": "26976:5:13"
																			}
																		],
																		"functionName": {
																			"name": "iszero",
																			"nodeType": "YulIdentifier",
																			"src": "26969:6:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "26969:13:13"
																	}
																],
																"functionName": {
																	"name": "iszero",
																	"nodeType": "YulIdentifier",
																	"src": "26962:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "26962:21:13"
															},
															"variableNames": [
																{
																	"name": "cleaned",
																	"nodeType": "YulIdentifier",
																	"src": "26951:7:13"
																}
															]
														}
													]
												},
												"name": "cleanup_t_bool",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "26923:5:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "cleaned",
														"nodeType": "YulTypedName",
														"src": "26933:7:13",
														"type": ""
													}
												],
												"src": "26899:90:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "27039:45:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "27049:29:13",
															"value": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "27064:5:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "27071:6:13",
																		"type": "",
																		"value": "0xffff"
																	}
																],
																"functionName": {
																	"name": "and",
																	"nodeType": "YulIdentifier",
																	"src": "27060:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "27060:18:13"
															},
															"variableNames": [
																{
																	"name": "cleaned",
																	"nodeType": "YulIdentifier",
																	"src": "27049:7:13"
																}
															]
														}
													]
												},
												"name": "cleanup_t_uint16",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "27021:5:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "cleaned",
														"nodeType": "YulTypedName",
														"src": "27031:7:13",
														"type": ""
													}
												],
												"src": "26995:89:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "27135:81:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "27145:65:13",
															"value": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "27160:5:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "27167:42:13",
																		"type": "",
																		"value": "0xffffffffffffffffffffffffffffffffffffffff"
																	}
																],
																"functionName": {
																	"name": "and",
																	"nodeType": "YulIdentifier",
																	"src": "27156:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "27156:54:13"
															},
															"variableNames": [
																{
																	"name": "cleaned",
																	"nodeType": "YulIdentifier",
																	"src": "27145:7:13"
																}
															]
														}
													]
												},
												"name": "cleanup_t_uint160",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "27117:5:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "cleaned",
														"nodeType": "YulTypedName",
														"src": "27127:7:13",
														"type": ""
													}
												],
												"src": "27090:126:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "27267:32:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "27277:16:13",
															"value": {
																"name": "value",
																"nodeType": "YulIdentifier",
																"src": "27288:5:13"
															},
															"variableNames": [
																{
																	"name": "cleaned",
																	"nodeType": "YulIdentifier",
																	"src": "27277:7:13"
																}
															]
														}
													]
												},
												"name": "cleanup_t_uint256",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "27249:5:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "cleaned",
														"nodeType": "YulTypedName",
														"src": "27259:7:13",
														"type": ""
													}
												],
												"src": "27222:77:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "27348:43:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "27358:27:13",
															"value": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "27373:5:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "27380:4:13",
																		"type": "",
																		"value": "0xff"
																	}
																],
																"functionName": {
																	"name": "and",
																	"nodeType": "YulIdentifier",
																	"src": "27369:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "27369:16:13"
															},
															"variableNames": [
																{
																	"name": "cleaned",
																	"nodeType": "YulIdentifier",
																	"src": "27358:7:13"
																}
															]
														}
													]
												},
												"name": "cleanup_t_uint8",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "27330:5:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "cleaned",
														"nodeType": "YulTypedName",
														"src": "27340:7:13",
														"type": ""
													}
												],
												"src": "27305:86:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "27465:66:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "27475:50:13",
															"value": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "27519:5:13"
																	}
																],
																"functionName": {
																	"name": "convert_t_uint160_to_t_address",
																	"nodeType": "YulIdentifier",
																	"src": "27488:30:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "27488:37:13"
															},
															"variableNames": [
																{
																	"name": "converted",
																	"nodeType": "YulIdentifier",
																	"src": "27475:9:13"
																}
															]
														}
													]
												},
												"name": "convert_t_address_payable_to_t_address",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "27445:5:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "converted",
														"nodeType": "YulTypedName",
														"src": "27455:9:13",
														"type": ""
													}
												],
												"src": "27397:134:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "27603:51:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "27613:35:13",
															"value": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "27642:5:13"
																	}
																],
																"functionName": {
																	"name": "cleanup_t_uint8",
																	"nodeType": "YulIdentifier",
																	"src": "27626:15:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "27626:22:13"
															},
															"variableNames": [
																{
																	"name": "converted",
																	"nodeType": "YulIdentifier",
																	"src": "27613:9:13"
																}
															]
														}
													]
												},
												"name": "convert_t_rational_1_by_1_to_t_uint8",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "27583:5:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "converted",
														"nodeType": "YulTypedName",
														"src": "27593:9:13",
														"type": ""
													}
												],
												"src": "27537:117:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "27720:66:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "27730:50:13",
															"value": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "27774:5:13"
																	}
																],
																"functionName": {
																	"name": "convert_t_uint160_to_t_uint160",
																	"nodeType": "YulIdentifier",
																	"src": "27743:30:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "27743:37:13"
															},
															"variableNames": [
																{
																	"name": "converted",
																	"nodeType": "YulIdentifier",
																	"src": "27730:9:13"
																}
															]
														}
													]
												},
												"name": "convert_t_uint160_to_t_address",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "27700:5:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "converted",
														"nodeType": "YulTypedName",
														"src": "27710:9:13",
														"type": ""
													}
												],
												"src": "27660:126:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "27852:53:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "27862:37:13",
															"value": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "27893:5:13"
																	}
																],
																"functionName": {
																	"name": "cleanup_t_uint160",
																	"nodeType": "YulIdentifier",
																	"src": "27875:17:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "27875:24:13"
															},
															"variableNames": [
																{
																	"name": "converted",
																	"nodeType": "YulIdentifier",
																	"src": "27862:9:13"
																}
															]
														}
													]
												},
												"name": "convert_t_uint160_to_t_uint160",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "27832:5:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "converted",
														"nodeType": "YulTypedName",
														"src": "27842:9:13",
														"type": ""
													}
												],
												"src": "27792:113:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "27970:52:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "27980:36:13",
															"value": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "28010:5:13"
																	}
																],
																"functionName": {
																	"name": "cleanup_t_uint16",
																	"nodeType": "YulIdentifier",
																	"src": "27993:16:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "27993:23:13"
															},
															"variableNames": [
																{
																	"name": "converted",
																	"nodeType": "YulIdentifier",
																	"src": "27980:9:13"
																}
															]
														}
													]
												},
												"name": "convert_t_uint16_to_t_uint256",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "27950:5:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "converted",
														"nodeType": "YulTypedName",
														"src": "27960:9:13",
														"type": ""
													}
												],
												"src": "27911:111:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "28079:103:13",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"name": "dst",
																		"nodeType": "YulIdentifier",
																		"src": "28102:3:13"
																	},
																	{
																		"name": "src",
																		"nodeType": "YulIdentifier",
																		"src": "28107:3:13"
																	},
																	{
																		"name": "length",
																		"nodeType": "YulIdentifier",
																		"src": "28112:6:13"
																	}
																],
																"functionName": {
																	"name": "calldatacopy",
																	"nodeType": "YulIdentifier",
																	"src": "28089:12:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "28089:30:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "28089:30:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "dst",
																				"nodeType": "YulIdentifier",
																				"src": "28160:3:13"
																			},
																			{
																				"name": "length",
																				"nodeType": "YulIdentifier",
																				"src": "28165:6:13"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "28156:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "28156:16:13"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "28174:1:13",
																		"type": "",
																		"value": "0"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "28149:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "28149:27:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "28149:27:13"
														}
													]
												},
												"name": "copy_calldata_to_memory",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "src",
														"nodeType": "YulTypedName",
														"src": "28061:3:13",
														"type": ""
													},
													{
														"name": "dst",
														"nodeType": "YulTypedName",
														"src": "28066:3:13",
														"type": ""
													},
													{
														"name": "length",
														"nodeType": "YulTypedName",
														"src": "28071:6:13",
														"type": ""
													}
												],
												"src": "28028:154:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "28237:258:13",
													"statements": [
														{
															"nodeType": "YulVariableDeclaration",
															"src": "28247:10:13",
															"value": {
																"kind": "number",
																"nodeType": "YulLiteral",
																"src": "28256:1:13",
																"type": "",
																"value": "0"
															},
															"variables": [
																{
																	"name": "i",
																	"nodeType": "YulTypedName",
																	"src": "28251:1:13",
																	"type": ""
																}
															]
														},
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "28316:63:13",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"arguments": [
																						{
																							"name": "dst",
																							"nodeType": "YulIdentifier",
																							"src": "28341:3:13"
																						},
																						{
																							"name": "i",
																							"nodeType": "YulIdentifier",
																							"src": "28346:1:13"
																						}
																					],
																					"functionName": {
																						"name": "add",
																						"nodeType": "YulIdentifier",
																						"src": "28337:3:13"
																					},
																					"nodeType": "YulFunctionCall",
																					"src": "28337:11:13"
																				},
																				{
																					"arguments": [
																						{
																							"arguments": [
																								{
																									"name": "src",
																									"nodeType": "YulIdentifier",
																									"src": "28360:3:13"
																								},
																								{
																									"name": "i",
																									"nodeType": "YulIdentifier",
																									"src": "28365:1:13"
																								}
																							],
																							"functionName": {
																								"name": "add",
																								"nodeType": "YulIdentifier",
																								"src": "28356:3:13"
																							},
																							"nodeType": "YulFunctionCall",
																							"src": "28356:11:13"
																						}
																					],
																					"functionName": {
																						"name": "mload",
																						"nodeType": "YulIdentifier",
																						"src": "28350:5:13"
																					},
																					"nodeType": "YulFunctionCall",
																					"src": "28350:18:13"
																				}
																			],
																			"functionName": {
																				"name": "mstore",
																				"nodeType": "YulIdentifier",
																				"src": "28330:6:13"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "28330:39:13"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "28330:39:13"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"name": "i",
																		"nodeType": "YulIdentifier",
																		"src": "28277:1:13"
																	},
																	{
																		"name": "length",
																		"nodeType": "YulIdentifier",
																		"src": "28280:6:13"
																	}
																],
																"functionName": {
																	"name": "lt",
																	"nodeType": "YulIdentifier",
																	"src": "28274:2:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "28274:13:13"
															},
															"nodeType": "YulForLoop",
															"post": {
																"nodeType": "YulBlock",
																"src": "28288:19:13",
																"statements": [
																	{
																		"nodeType": "YulAssignment",
																		"src": "28290:15:13",
																		"value": {
																			"arguments": [
																				{
																					"name": "i",
																					"nodeType": "YulIdentifier",
																					"src": "28299:1:13"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "28302:2:13",
																					"type": "",
																					"value": "32"
																				}
																			],
																			"functionName": {
																				"name": "add",
																				"nodeType": "YulIdentifier",
																				"src": "28295:3:13"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "28295:10:13"
																		},
																		"variableNames": [
																			{
																				"name": "i",
																				"nodeType": "YulIdentifier",
																				"src": "28290:1:13"
																			}
																		]
																	}
																]
															},
															"pre": {
																"nodeType": "YulBlock",
																"src": "28270:3:13",
																"statements": []
															},
															"src": "28266:113:13"
														},
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "28413:76:13",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"arguments": [
																						{
																							"name": "dst",
																							"nodeType": "YulIdentifier",
																							"src": "28463:3:13"
																						},
																						{
																							"name": "length",
																							"nodeType": "YulIdentifier",
																							"src": "28468:6:13"
																						}
																					],
																					"functionName": {
																						"name": "add",
																						"nodeType": "YulIdentifier",
																						"src": "28459:3:13"
																					},
																					"nodeType": "YulFunctionCall",
																					"src": "28459:16:13"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "28477:1:13",
																					"type": "",
																					"value": "0"
																				}
																			],
																			"functionName": {
																				"name": "mstore",
																				"nodeType": "YulIdentifier",
																				"src": "28452:6:13"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "28452:27:13"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "28452:27:13"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"name": "i",
																		"nodeType": "YulIdentifier",
																		"src": "28394:1:13"
																	},
																	{
																		"name": "length",
																		"nodeType": "YulIdentifier",
																		"src": "28397:6:13"
																	}
																],
																"functionName": {
																	"name": "gt",
																	"nodeType": "YulIdentifier",
																	"src": "28391:2:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "28391:13:13"
															},
															"nodeType": "YulIf",
															"src": "28388:2:13"
														}
													]
												},
												"name": "copy_memory_to_memory",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "src",
														"nodeType": "YulTypedName",
														"src": "28219:3:13",
														"type": ""
													},
													{
														"name": "dst",
														"nodeType": "YulTypedName",
														"src": "28224:3:13",
														"type": ""
													},
													{
														"name": "length",
														"nodeType": "YulTypedName",
														"src": "28229:6:13",
														"type": ""
													}
												],
												"src": "28188:307:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "28544:238:13",
													"statements": [
														{
															"nodeType": "YulVariableDeclaration",
															"src": "28554:58:13",
															"value": {
																"arguments": [
																	{
																		"name": "memPtr",
																		"nodeType": "YulIdentifier",
																		"src": "28576:6:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "size",
																				"nodeType": "YulIdentifier",
																				"src": "28606:4:13"
																			}
																		],
																		"functionName": {
																			"name": "round_up_to_mul_of_32",
																			"nodeType": "YulIdentifier",
																			"src": "28584:21:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "28584:27:13"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "28572:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "28572:40:13"
															},
															"variables": [
																{
																	"name": "newFreePtr",
																	"nodeType": "YulTypedName",
																	"src": "28558:10:13",
																	"type": ""
																}
															]
														},
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "28723:22:13",
																"statements": [
																	{
																		"expression": {
																			"arguments": [],
																			"functionName": {
																				"name": "panic_error_0x41",
																				"nodeType": "YulIdentifier",
																				"src": "28725:16:13"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "28725:18:13"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "28725:18:13"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "newFreePtr",
																				"nodeType": "YulIdentifier",
																				"src": "28666:10:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "28678:18:13",
																				"type": "",
																				"value": "0xffffffffffffffff"
																			}
																		],
																		"functionName": {
																			"name": "gt",
																			"nodeType": "YulIdentifier",
																			"src": "28663:2:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "28663:34:13"
																	},
																	{
																		"arguments": [
																			{
																				"name": "newFreePtr",
																				"nodeType": "YulIdentifier",
																				"src": "28702:10:13"
																			},
																			{
																				"name": "memPtr",
																				"nodeType": "YulIdentifier",
																				"src": "28714:6:13"
																			}
																		],
																		"functionName": {
																			"name": "lt",
																			"nodeType": "YulIdentifier",
																			"src": "28699:2:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "28699:22:13"
																	}
																],
																"functionName": {
																	"name": "or",
																	"nodeType": "YulIdentifier",
																	"src": "28660:2:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "28660:62:13"
															},
															"nodeType": "YulIf",
															"src": "28657:2:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "28761:2:13",
																		"type": "",
																		"value": "64"
																	},
																	{
																		"name": "newFreePtr",
																		"nodeType": "YulIdentifier",
																		"src": "28765:10:13"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "28754:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "28754:22:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "28754:22:13"
														}
													]
												},
												"name": "finalize_allocation",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "memPtr",
														"nodeType": "YulTypedName",
														"src": "28530:6:13",
														"type": ""
													},
													{
														"name": "size",
														"nodeType": "YulTypedName",
														"src": "28538:4:13",
														"type": ""
													}
												],
												"src": "28501:281:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "28835:53:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "28845:37:13",
															"value": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "28876:5:13"
																	}
																],
																"functionName": {
																	"name": "leftAlign_t_uint160",
																	"nodeType": "YulIdentifier",
																	"src": "28856:19:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "28856:26:13"
															},
															"variableNames": [
																{
																	"name": "aligned",
																	"nodeType": "YulIdentifier",
																	"src": "28845:7:13"
																}
															]
														}
													]
												},
												"name": "leftAlign_t_address",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "28817:5:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "aligned",
														"nodeType": "YulTypedName",
														"src": "28827:7:13",
														"type": ""
													}
												],
												"src": "28788:100:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "28941:47:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "28951:31:13",
															"value": {
																"arguments": [
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "28976:5:13"
																	}
																],
																"functionName": {
																	"name": "shift_left_96",
																	"nodeType": "YulIdentifier",
																	"src": "28962:13:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "28962:20:13"
															},
															"variableNames": [
																{
																	"name": "aligned",
																	"nodeType": "YulIdentifier",
																	"src": "28951:7:13"
																}
															]
														}
													]
												},
												"name": "leftAlign_t_uint160",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "28923:5:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "aligned",
														"nodeType": "YulTypedName",
														"src": "28933:7:13",
														"type": ""
													}
												],
												"src": "28894:94:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "29022:152:13",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "29039:1:13",
																		"type": "",
																		"value": "0"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "29042:77:13",
																		"type": "",
																		"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "29032:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "29032:88:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "29032:88:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "29136:1:13",
																		"type": "",
																		"value": "4"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "29139:4:13",
																		"type": "",
																		"value": "0x11"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "29129:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "29129:15:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "29129:15:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "29160:1:13",
																		"type": "",
																		"value": "0"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "29163:4:13",
																		"type": "",
																		"value": "0x24"
																	}
																],
																"functionName": {
																	"name": "revert",
																	"nodeType": "YulIdentifier",
																	"src": "29153:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "29153:15:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "29153:15:13"
														}
													]
												},
												"name": "panic_error_0x11",
												"nodeType": "YulFunctionDefinition",
												"src": "28994:180:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "29208:152:13",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "29225:1:13",
																		"type": "",
																		"value": "0"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "29228:77:13",
																		"type": "",
																		"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "29218:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "29218:88:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "29218:88:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "29322:1:13",
																		"type": "",
																		"value": "4"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "29325:4:13",
																		"type": "",
																		"value": "0x12"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "29315:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "29315:15:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "29315:15:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "29346:1:13",
																		"type": "",
																		"value": "0"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "29349:4:13",
																		"type": "",
																		"value": "0x24"
																	}
																],
																"functionName": {
																	"name": "revert",
																	"nodeType": "YulIdentifier",
																	"src": "29339:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "29339:15:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "29339:15:13"
														}
													]
												},
												"name": "panic_error_0x12",
												"nodeType": "YulFunctionDefinition",
												"src": "29180:180:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "29394:152:13",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "29411:1:13",
																		"type": "",
																		"value": "0"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "29414:77:13",
																		"type": "",
																		"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "29404:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "29404:88:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "29404:88:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "29508:1:13",
																		"type": "",
																		"value": "4"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "29511:4:13",
																		"type": "",
																		"value": "0x41"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "29501:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "29501:15:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "29501:15:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "29532:1:13",
																		"type": "",
																		"value": "0"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "29535:4:13",
																		"type": "",
																		"value": "0x24"
																	}
																],
																"functionName": {
																	"name": "revert",
																	"nodeType": "YulIdentifier",
																	"src": "29525:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "29525:15:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "29525:15:13"
														}
													]
												},
												"name": "panic_error_0x41",
												"nodeType": "YulFunctionDefinition",
												"src": "29366:180:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "29600:54:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "29610:38:13",
															"value": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "value",
																				"nodeType": "YulIdentifier",
																				"src": "29628:5:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "29635:2:13",
																				"type": "",
																				"value": "31"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "29624:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "29624:14:13"
																	},
																	{
																		"arguments": [
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "29644:2:13",
																				"type": "",
																				"value": "31"
																			}
																		],
																		"functionName": {
																			"name": "not",
																			"nodeType": "YulIdentifier",
																			"src": "29640:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "29640:7:13"
																	}
																],
																"functionName": {
																	"name": "and",
																	"nodeType": "YulIdentifier",
																	"src": "29620:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "29620:28:13"
															},
															"variableNames": [
																{
																	"name": "result",
																	"nodeType": "YulIdentifier",
																	"src": "29610:6:13"
																}
															]
														}
													]
												},
												"name": "round_up_to_mul_of_32",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "29583:5:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "result",
														"nodeType": "YulTypedName",
														"src": "29593:6:13",
														"type": ""
													}
												],
												"src": "29552:102:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "29702:52:13",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "29712:35:13",
															"value": {
																"arguments": [
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "29737:2:13",
																		"type": "",
																		"value": "96"
																	},
																	{
																		"name": "value",
																		"nodeType": "YulIdentifier",
																		"src": "29741:5:13"
																	}
																],
																"functionName": {
																	"name": "shl",
																	"nodeType": "YulIdentifier",
																	"src": "29733:3:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "29733:14:13"
															},
															"variableNames": [
																{
																	"name": "newValue",
																	"nodeType": "YulIdentifier",
																	"src": "29712:8:13"
																}
															]
														}
													]
												},
												"name": "shift_left_96",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "29683:5:13",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "newValue",
														"nodeType": "YulTypedName",
														"src": "29693:8:13",
														"type": ""
													}
												],
												"src": "29660:94:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "29866:115:13",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "memPtr",
																				"nodeType": "YulIdentifier",
																				"src": "29888:6:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "29896:1:13",
																				"type": "",
																				"value": "0"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "29884:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "29884:14:13"
																	},
																	{
																		"kind": "string",
																		"nodeType": "YulLiteral",
																		"src": "29900:34:13",
																		"type": "",
																		"value": "LibDiamond: Must be contract own"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "29877:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "29877:58:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "29877:58:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "memPtr",
																				"nodeType": "YulIdentifier",
																				"src": "29956:6:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "29964:2:13",
																				"type": "",
																				"value": "32"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "29952:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "29952:15:13"
																	},
																	{
																		"kind": "string",
																		"nodeType": "YulLiteral",
																		"src": "29969:4:13",
																		"type": "",
																		"value": "er"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "29945:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "29945:29:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "29945:29:13"
														}
													]
												},
												"name": "store_literal_in_memory_0d4ae41009c51fd276653a54d7793c24f266ddc8c56ce21f8be5e2c6595ab3ac",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "memPtr",
														"nodeType": "YulTypedName",
														"src": "29858:6:13",
														"type": ""
													}
												],
												"src": "29760:221:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "30093:46:13",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "memPtr",
																				"nodeType": "YulIdentifier",
																				"src": "30115:6:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "30123:1:13",
																				"type": "",
																				"value": "0"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "30111:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "30111:14:13"
																	},
																	{
																		"kind": "string",
																		"nodeType": "YulLiteral",
																		"src": "30127:4:13",
																		"type": "",
																		"value": "0x"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "30104:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "30104:28:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "30104:28:13"
														}
													]
												},
												"name": "store_literal_in_memory_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "memPtr",
														"nodeType": "YulTypedName",
														"src": "30085:6:13",
														"type": ""
													}
												],
												"src": "29987:152:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "30251:119:13",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "memPtr",
																				"nodeType": "YulIdentifier",
																				"src": "30273:6:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "30281:1:13",
																				"type": "",
																				"value": "0"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "30269:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "30269:14:13"
																	},
																	{
																		"kind": "string",
																		"nodeType": "YulLiteral",
																		"src": "30285:34:13",
																		"type": "",
																		"value": "Address: insufficient balance fo"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "30262:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "30262:58:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "30262:58:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "memPtr",
																				"nodeType": "YulIdentifier",
																				"src": "30341:6:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "30349:2:13",
																				"type": "",
																				"value": "32"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "30337:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "30337:15:13"
																	},
																	{
																		"kind": "string",
																		"nodeType": "YulLiteral",
																		"src": "30354:8:13",
																		"type": "",
																		"value": "r call"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "30330:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "30330:33:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "30330:33:13"
														}
													]
												},
												"name": "store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "memPtr",
														"nodeType": "YulTypedName",
														"src": "30243:6:13",
														"type": ""
													}
												],
												"src": "30145:225:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "30482:52:13",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "memPtr",
																				"nodeType": "YulIdentifier",
																				"src": "30504:6:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "30512:1:13",
																				"type": "",
																				"value": "0"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "30500:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "30500:14:13"
																	},
																	{
																		"kind": "string",
																		"nodeType": "YulLiteral",
																		"src": "30516:10:13",
																		"type": "",
																		"value": "stargate"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "30493:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "30493:34:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "30493:34:13"
														}
													]
												},
												"name": "store_literal_in_memory_6ba4f45f593ebc3b0035188aa4ba0c82f39a70f583863862aab89e6ae77de4d9",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "memPtr",
														"nodeType": "YulTypedName",
														"src": "30474:6:13",
														"type": ""
													}
												],
												"src": "30376:158:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "30646:73:13",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "memPtr",
																				"nodeType": "YulIdentifier",
																				"src": "30668:6:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "30676:1:13",
																				"type": "",
																				"value": "0"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "30664:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "30664:14:13"
																	},
																	{
																		"kind": "string",
																		"nodeType": "YulLiteral",
																		"src": "30680:31:13",
																		"type": "",
																		"value": "Address: call to non-contract"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "30657:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "30657:55:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "30657:55:13"
														}
													]
												},
												"name": "store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "memPtr",
														"nodeType": "YulTypedName",
														"src": "30638:6:13",
														"type": ""
													}
												],
												"src": "30540:179:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "30831:123:13",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "memPtr",
																				"nodeType": "YulIdentifier",
																				"src": "30853:6:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "30861:1:13",
																				"type": "",
																				"value": "0"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "30849:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "30849:14:13"
																	},
																	{
																		"kind": "string",
																		"nodeType": "YulLiteral",
																		"src": "30865:34:13",
																		"type": "",
																		"value": "SafeERC20: ERC20 operation did n"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "30842:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "30842:58:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "30842:58:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "memPtr",
																				"nodeType": "YulIdentifier",
																				"src": "30921:6:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "30929:2:13",
																				"type": "",
																				"value": "32"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "30917:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "30917:15:13"
																	},
																	{
																		"kind": "string",
																		"nodeType": "YulLiteral",
																		"src": "30934:12:13",
																		"type": "",
																		"value": "ot succeed"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "30910:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "30910:37:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "30910:37:13"
														}
													]
												},
												"name": "store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "memPtr",
														"nodeType": "YulTypedName",
														"src": "30823:6:13",
														"type": ""
													}
												],
												"src": "30725:229:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "31066:135:13",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "memPtr",
																				"nodeType": "YulIdentifier",
																				"src": "31088:6:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "31096:1:13",
																				"type": "",
																				"value": "0"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "31084:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "31084:14:13"
																	},
																	{
																		"kind": "string",
																		"nodeType": "YulLiteral",
																		"src": "31100:34:13",
																		"type": "",
																		"value": "SafeERC20: approve from non-zero"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "31077:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "31077:58:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "31077:58:13"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "memPtr",
																				"nodeType": "YulIdentifier",
																				"src": "31156:6:13"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "31164:2:13",
																				"type": "",
																				"value": "32"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "31152:3:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "31152:15:13"
																	},
																	{
																		"kind": "string",
																		"nodeType": "YulLiteral",
																		"src": "31169:24:13",
																		"type": "",
																		"value": " to non-zero allowance"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "31145:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "31145:49:13"
															},
															"nodeType": "YulExpressionStatement",
															"src": "31145:49:13"
														}
													]
												},
												"name": "store_literal_in_memory_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "memPtr",
														"nodeType": "YulTypedName",
														"src": "31058:6:13",
														"type": ""
													}
												],
												"src": "30960:241:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "31250:79:13",
													"statements": [
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "31307:16:13",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "31316:1:13",
																					"type": "",
																					"value": "0"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "31319:1:13",
																					"type": "",
																					"value": "0"
																				}
																			],
																			"functionName": {
																				"name": "revert",
																				"nodeType": "YulIdentifier",
																				"src": "31309:6:13"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "31309:12:13"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "31309:12:13"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "value",
																				"nodeType": "YulIdentifier",
																				"src": "31273:5:13"
																			},
																			{
																				"arguments": [
																					{
																						"name": "value",
																						"nodeType": "YulIdentifier",
																						"src": "31298:5:13"
																					}
																				],
																				"functionName": {
																					"name": "cleanup_t_address",
																					"nodeType": "YulIdentifier",
																					"src": "31280:17:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "31280:24:13"
																			}
																		],
																		"functionName": {
																			"name": "eq",
																			"nodeType": "YulIdentifier",
																			"src": "31270:2:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "31270:35:13"
																	}
																],
																"functionName": {
																	"name": "iszero",
																	"nodeType": "YulIdentifier",
																	"src": "31263:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "31263:43:13"
															},
															"nodeType": "YulIf",
															"src": "31260:2:13"
														}
													]
												},
												"name": "validator_revert_t_address",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "31243:5:13",
														"type": ""
													}
												],
												"src": "31207:122:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "31386:87:13",
													"statements": [
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "31451:16:13",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "31460:1:13",
																					"type": "",
																					"value": "0"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "31463:1:13",
																					"type": "",
																					"value": "0"
																				}
																			],
																			"functionName": {
																				"name": "revert",
																				"nodeType": "YulIdentifier",
																				"src": "31453:6:13"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "31453:12:13"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "31453:12:13"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "value",
																				"nodeType": "YulIdentifier",
																				"src": "31409:5:13"
																			},
																			{
																				"arguments": [
																					{
																						"name": "value",
																						"nodeType": "YulIdentifier",
																						"src": "31442:5:13"
																					}
																				],
																				"functionName": {
																					"name": "cleanup_t_address_payable",
																					"nodeType": "YulIdentifier",
																					"src": "31416:25:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "31416:32:13"
																			}
																		],
																		"functionName": {
																			"name": "eq",
																			"nodeType": "YulIdentifier",
																			"src": "31406:2:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "31406:43:13"
																	}
																],
																"functionName": {
																	"name": "iszero",
																	"nodeType": "YulIdentifier",
																	"src": "31399:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "31399:51:13"
															},
															"nodeType": "YulIf",
															"src": "31396:2:13"
														}
													]
												},
												"name": "validator_revert_t_address_payable",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "31379:5:13",
														"type": ""
													}
												],
												"src": "31335:138:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "31519:76:13",
													"statements": [
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "31573:16:13",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "31582:1:13",
																					"type": "",
																					"value": "0"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "31585:1:13",
																					"type": "",
																					"value": "0"
																				}
																			],
																			"functionName": {
																				"name": "revert",
																				"nodeType": "YulIdentifier",
																				"src": "31575:6:13"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "31575:12:13"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "31575:12:13"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "value",
																				"nodeType": "YulIdentifier",
																				"src": "31542:5:13"
																			},
																			{
																				"arguments": [
																					{
																						"name": "value",
																						"nodeType": "YulIdentifier",
																						"src": "31564:5:13"
																					}
																				],
																				"functionName": {
																					"name": "cleanup_t_bool",
																					"nodeType": "YulIdentifier",
																					"src": "31549:14:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "31549:21:13"
																			}
																		],
																		"functionName": {
																			"name": "eq",
																			"nodeType": "YulIdentifier",
																			"src": "31539:2:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "31539:32:13"
																	}
																],
																"functionName": {
																	"name": "iszero",
																	"nodeType": "YulIdentifier",
																	"src": "31532:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "31532:40:13"
															},
															"nodeType": "YulIf",
															"src": "31529:2:13"
														}
													]
												},
												"name": "validator_revert_t_bool",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "31512:5:13",
														"type": ""
													}
												],
												"src": "31479:116:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "31643:78:13",
													"statements": [
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "31699:16:13",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "31708:1:13",
																					"type": "",
																					"value": "0"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "31711:1:13",
																					"type": "",
																					"value": "0"
																				}
																			],
																			"functionName": {
																				"name": "revert",
																				"nodeType": "YulIdentifier",
																				"src": "31701:6:13"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "31701:12:13"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "31701:12:13"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "value",
																				"nodeType": "YulIdentifier",
																				"src": "31666:5:13"
																			},
																			{
																				"arguments": [
																					{
																						"name": "value",
																						"nodeType": "YulIdentifier",
																						"src": "31690:5:13"
																					}
																				],
																				"functionName": {
																					"name": "cleanup_t_uint16",
																					"nodeType": "YulIdentifier",
																					"src": "31673:16:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "31673:23:13"
																			}
																		],
																		"functionName": {
																			"name": "eq",
																			"nodeType": "YulIdentifier",
																			"src": "31663:2:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "31663:34:13"
																	}
																],
																"functionName": {
																	"name": "iszero",
																	"nodeType": "YulIdentifier",
																	"src": "31656:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "31656:42:13"
															},
															"nodeType": "YulIf",
															"src": "31653:2:13"
														}
													]
												},
												"name": "validator_revert_t_uint16",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "31636:5:13",
														"type": ""
													}
												],
												"src": "31601:120:13"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "31770:79:13",
													"statements": [
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "31827:16:13",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "31836:1:13",
																					"type": "",
																					"value": "0"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "31839:1:13",
																					"type": "",
																					"value": "0"
																				}
																			],
																			"functionName": {
																				"name": "revert",
																				"nodeType": "YulIdentifier",
																				"src": "31829:6:13"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "31829:12:13"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "31829:12:13"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "value",
																				"nodeType": "YulIdentifier",
																				"src": "31793:5:13"
																			},
																			{
																				"arguments": [
																					{
																						"name": "value",
																						"nodeType": "YulIdentifier",
																						"src": "31818:5:13"
																					}
																				],
																				"functionName": {
																					"name": "cleanup_t_uint256",
																					"nodeType": "YulIdentifier",
																					"src": "31800:17:13"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "31800:24:13"
																			}
																		],
																		"functionName": {
																			"name": "eq",
																			"nodeType": "YulIdentifier",
																			"src": "31790:2:13"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "31790:35:13"
																	}
																],
																"functionName": {
																	"name": "iszero",
																	"nodeType": "YulIdentifier",
																	"src": "31783:6:13"
																},
																"nodeType": "YulFunctionCall",
																"src": "31783:43:13"
															},
															"nodeType": "YulIf",
															"src": "31780:2:13"
														}
													]
												},
												"name": "validator_revert_t_uint256",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "31763:5:13",
														"type": ""
													}
												],
												"src": "31727:122:13"
											}
										]
									},
									"contents": "{\n\n    function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert(0, 0) }\n        copy_calldata_to_memory(src, dst, length)\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_t_address_payable(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address_payable(value)\n    }\n\n    function abi_decode_t_address_payable_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_address_payable(value)\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    // bytes\n    function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let length := calldataload(offset)\n        array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n    }\n\n    // struct StargateFacet.StargateData\n    function abi_decode_t_struct$_StargateData_$846_memory_ptr(headStart, end) -> value {\n        if slt(sub(end, headStart), 0x0100) { revert(0, 0) }\n        value := allocate_memory(0x0100)\n\n        {\n            // qty\n\n            let offset := 0\n\n            mstore(add(value, 0x00), abi_decode_t_uint256(add(headStart, offset), end))\n\n        }\n\n        {\n            // fromToken\n\n            let offset := 32\n\n            mstore(add(value, 0x20), abi_decode_t_address(add(headStart, offset), end))\n\n        }\n\n        {\n            // toToken\n\n            let offset := 64\n\n            mstore(add(value, 0x40), abi_decode_t_address(add(headStart, offset), end))\n\n        }\n\n        {\n            // dstChainId\n\n            let offset := 96\n\n            mstore(add(value, 0x60), abi_decode_t_uint16(add(headStart, offset), end))\n\n        }\n\n        {\n            // srcPoolId\n\n            let offset := 128\n\n            mstore(add(value, 0x80), abi_decode_t_uint16(add(headStart, offset), end))\n\n        }\n\n        {\n            // dstPoolId\n\n            let offset := 160\n\n            mstore(add(value, 0xa0), abi_decode_t_uint16(add(headStart, offset), end))\n\n        }\n\n        {\n            // to\n\n            let offset := 192\n\n            mstore(add(value, 0xc0), abi_decode_t_address_payable(add(headStart, offset), end))\n\n        }\n\n        {\n            // destStargateComposed\n\n            let offset := 224\n\n            mstore(add(value, 0xe0), abi_decode_t_address(add(headStart, offset), end))\n\n        }\n\n    }\n\n    function abi_decode_t_uint16(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint16(value)\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_address_payable_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address_payable_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_uint16(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_struct$_StargateData_$846_memory_ptr(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 256) { revert(0, 0) }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_struct$_StargateData_$846_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint16t_addresst_address(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint16t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint16t_bytes_memory_ptrt_uint256t_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n        if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n\n            value1 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 128\n\n            value4 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := calldataload(add(headStart, 160))\n            if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n\n            value5 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1 {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_payable_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_address_payable_to_t_address(value))\n    }\n\n    function abi_encode_t_address_payable_to_t_address_payable_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address_payable(value))\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n        mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(value, pos) -> end {\n        let length := array_length_t_bytes_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr(pos, length)\n        copy_memory_to_memory(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_bytes_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n        let length := array_length_t_bytes_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n        copy_memory_to_memory(add(value, 0x20), pos, length)\n        end := add(pos, length)\n    }\n\n    function abi_encode_t_rational_1_by_1_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, convert_t_rational_1_by_1_to_t_uint8(value))\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_t_stringliteral_0d4ae41009c51fd276653a54d7793c24f266ddc8c56ce21f8be5e2c6595ab3ac_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n        store_literal_in_memory_0d4ae41009c51fd276653a54d7793c24f266ddc8c56ce21f8be5e2c6595ab3ac(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837_to_t_bytes_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, 2)\n        store_literal_in_memory_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_t_stringliteral_6ba4f45f593ebc3b0035188aa4ba0c82f39a70f583863862aab89e6ae77de4d9_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 8)\n        store_literal_in_memory_6ba4f45f593ebc3b0035188aa4ba0c82f39a70f583863862aab89e6ae77de4d9(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n        store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 42)\n        store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 54)\n        store_literal_in_memory_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25(pos)\n        end := add(pos, 64)\n    }\n\n    // struct IStargateRouter.lzTxObj -> struct IStargateRouter.lzTxObj\n    function abi_encode_t_struct$_lzTxObj_$1610_memory_ptr_to_t_struct$_lzTxObj_$1610_memory_ptr_fromStack(value, pos)  -> end  {\n        let tail := add(pos, 0x60)\n\n        {\n            // dstGasForCall\n\n            let memberValue0 := mload(add(value, 0x00))\n            abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x00))\n        }\n\n        {\n            // dstNativeAmount\n\n            let memberValue0 := mload(add(value, 0x20))\n            abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x20))\n        }\n\n        {\n            // dstNativeAddr\n\n            let memberValue0 := mload(add(value, 0x40))\n\n            mstore(add(pos, 0x40), sub(tail, pos))\n            tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n        }\n\n        end := tail\n    }\n\n    function abi_encode_t_uint16_to_t_uint16_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint16(value))\n    }\n\n    function abi_encode_t_uint16_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, convert_t_uint16_to_t_uint256(value))\n    }\n\n    function abi_encode_t_uint256_to_t_uint256(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_packed_t_address__to_t_address__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n        abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value0,  pos)\n        pos := add(pos, 20)\n\n        end := pos\n    }\n\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n        pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0,  pos)\n\n        end := pos\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_payable_to_t_address_payable_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n    }\n\n    function abi_encode_tuple_t_address_t_uint16__to_t_address_t_uint16__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n    function abi_encode_tuple_t_stringliteral_0d4ae41009c51fd276653a54d7793c24f266ddc8c56ce21f8be5e2c6595ab3ac__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_0d4ae41009c51fd276653a54d7793c24f266ddc8c56ce21f8be5e2c6595ab3ac_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_stringliteral_6ba4f45f593ebc3b0035188aa4ba0c82f39a70f583863862aab89e6ae77de4d9_t_address_t_address_t_address_t_address_payable_t_uint256_t_uint16__to_t_string_memory_ptr_t_address_t_address_t_address_t_address_t_uint256_t_uint16__fromStack_reversed(headStart , value5, value4, value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 224)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_6ba4f45f593ebc3b0035188aa4ba0c82f39a70f583863862aab89e6ae77de4d9_to_t_string_memory_ptr_fromStack( tail)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 32))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 64))\n\n        abi_encode_t_address_to_t_address_fromStack(value2,  add(headStart, 96))\n\n        abi_encode_t_address_payable_to_t_address_fromStack(value3,  add(headStart, 128))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value4,  add(headStart, 160))\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value5,  add(headStart, 192))\n\n    }\n\n    function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_uint16_t_address_t_uint256__to_t_uint16_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n    }\n\n    function abi_encode_tuple_t_uint16_t_rational_1_by_1_t_bytes_memory_ptr_t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837_t_struct$_lzTxObj_$1610_memory_ptr__to_t_uint16_t_uint8_t_bytes_memory_ptr_t_bytes_memory_ptr_t_struct$_lzTxObj_$1610_memory_ptr__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 160)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_rational_1_by_1_to_t_uint8_fromStack(value1,  add(headStart, 32))\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value2,  tail)\n\n        mstore(add(headStart, 96), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837_to_t_bytes_memory_ptr_fromStack( tail)\n\n        mstore(add(headStart, 128), sub(tail, headStart))\n        tail := abi_encode_t_struct$_lzTxObj_$1610_memory_ptr_to_t_struct$_lzTxObj_$1610_memory_ptr_fromStack(value3,  tail)\n\n    }\n\n    function abi_encode_tuple_t_uint16_t_uint16_t_uint16_t_address_payable_t_uint256_t_uint256_t_struct$_lzTxObj_$1610_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_uint16_t_uint256_t_uint256_t_address_payable_t_uint256_t_uint256_t_struct$_lzTxObj_$1610_memory_ptr_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart , value8, value7, value6, value5, value4, value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 288)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint16_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint16_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n        abi_encode_t_address_payable_to_t_address_payable_fromStack(value3,  add(headStart, 96))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value4,  add(headStart, 128))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value5,  add(headStart, 160))\n\n        mstore(add(headStart, 192), sub(tail, headStart))\n        tail := abi_encode_t_struct$_lzTxObj_$1610_memory_ptr_to_t_struct$_lzTxObj_$1610_memory_ptr_fromStack(value6,  tail)\n\n        mstore(add(headStart, 224), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value7,  tail)\n\n        mstore(add(headStart, 256), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value8,  tail)\n\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := round_up_to_mul_of_32(length)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function array_length_t_bytes_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n\n        // overflow, if x != 0 and y > (maxValue / x)\n        if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n        product := mul(x, y)\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n\n        if lt(x, y) { panic_error_0x11() }\n\n        diff := sub(x, y)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function cleanup_t_address_payable(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function cleanup_t_uint16(value) -> cleaned {\n        cleaned := and(value, 0xffff)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function convert_t_address_payable_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function convert_t_rational_1_by_1_to_t_uint8(value) -> converted {\n        converted := cleanup_t_uint8(value)\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(value)\n    }\n\n    function convert_t_uint16_to_t_uint256(value) -> converted {\n        converted := cleanup_t_uint16(value)\n    }\n\n    function copy_calldata_to_memory(src, dst, length) {\n        calldatacopy(dst, src, length)\n        // clear end\n        mstore(add(dst, length), 0)\n    }\n\n    function copy_memory_to_memory(src, dst, length) {\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        if gt(i, length)\n        {\n            // clear end\n            mstore(add(dst, length), 0)\n        }\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function leftAlign_t_address(value) -> aligned {\n        aligned := leftAlign_t_uint160(value)\n    }\n\n    function leftAlign_t_uint160(value) -> aligned {\n        aligned := shift_left_96(value)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function shift_left_96(value) -> newValue {\n        newValue :=\n\n        shl(96, value)\n\n    }\n\n    function store_literal_in_memory_0d4ae41009c51fd276653a54d7793c24f266ddc8c56ce21f8be5e2c6595ab3ac(memPtr) {\n\n        mstore(add(memPtr, 0), \"LibDiamond: Must be contract own\")\n\n        mstore(add(memPtr, 32), \"er\")\n\n    }\n\n    function store_literal_in_memory_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837(memPtr) {\n\n        mstore(add(memPtr, 0), \"0x\")\n\n    }\n\n    function store_literal_in_memory_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c(memPtr) {\n\n        mstore(add(memPtr, 0), \"Address: insufficient balance fo\")\n\n        mstore(add(memPtr, 32), \"r call\")\n\n    }\n\n    function store_literal_in_memory_6ba4f45f593ebc3b0035188aa4ba0c82f39a70f583863862aab89e6ae77de4d9(memPtr) {\n\n        mstore(add(memPtr, 0), \"stargate\")\n\n    }\n\n    function store_literal_in_memory_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad(memPtr) {\n\n        mstore(add(memPtr, 0), \"Address: call to non-contract\")\n\n    }\n\n    function store_literal_in_memory_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd(memPtr) {\n\n        mstore(add(memPtr, 0), \"SafeERC20: ERC20 operation did n\")\n\n        mstore(add(memPtr, 32), \"ot succeed\")\n\n    }\n\n    function store_literal_in_memory_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25(memPtr) {\n\n        mstore(add(memPtr, 0), \"SafeERC20: approve from non-zero\")\n\n        mstore(add(memPtr, 32), \" to non-zero allowance\")\n\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function validator_revert_t_address_payable(value) {\n        if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function validator_revert_t_uint16(value) {\n        if iszero(eq(value, cleanup_t_uint16(value))) { revert(0, 0) }\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n}\n",
									"id": 13,
									"language": "Yul",
									"name": "#utility.yul"
								}
							],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "6080604052600436106100955760003560e01c8063618c3f2911610059578063618c3f29146101825780636acf5e3f146101bf57806390f12364146101ef578063ab8236f31461022c578063c722a336146102555761009c565b8063217aabb7146100a15780632aad46e3146100ca57806342d910c6146100f3578063498ee469146101305780634be85c35146101595761009c565b3661009c57005b600080fd5b3480156100ad57600080fd5b506100c860048036038101906100c39190611a08565b610271565b005b3480156100d657600080fd5b506100f160048036038101906100ec9190611900565b6102c9565b005b3480156100ff57600080fd5b5061011a600480360381019061011591906118b1565b61037d565b60405161012791906120ff565b60405180910390f35b34801561013c57600080fd5b5061015760048036038101906101529190611822565b61048f565b005b34801561016557600080fd5b50610180600480360381019061017b9190611781565b610740565b005b34801561018e57600080fd5b506101a960048036038101906101a49190611a08565b610839565b6040516101b691906120ff565b60405180910390f35b6101d960048036038101906101d49190611887565b610878565b6040516101e69190611e6f565b60405180910390f35b3480156101fb57600080fd5b5061021660048036038101906102119190611900565b610d75565b6040516102239190611e6f565b60405180910390f35b34801561023857600080fd5b50610253600480360381019061024e919061194f565b610df7565b005b61026f600480360381019061026a91906117d3565b610f75565b005b61027961103a565b60006102836110d5565b90508181600201819055507f45934903f6b10aff9d3435b8362d284d95d14ca68e8554f05f04c7856a6003c0826040516102bd91906120ff565b60405180910390a15050565b6102d161103a565b60006102db6110d5565b9050818160030160008661ffff1661ffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f5a600144b7b71ca7ee988e17e7745e8d46eb24056d4818716be29fa976393a8e84848460405161036f93929190611fc0565b60405180910390a150505050565b6000808273ffffffffffffffffffffffffffffffffffffffff16630a512369866001876040516020016103b09190611d55565b604051602081830303815290604052604051806060016040528062030d408152602001600081526020016040518060400160405280600281526020017f30780000000000000000000000000000000000000000000000000000000000008152508152506040518563ffffffff1660e01b81526004016104329493929190611ff7565b604080518083038186803b15801561044957600080fd5b505afa15801561045d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104819190611a5a565b509050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156104f6576040517f35be3ac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104fe61103a565b60006105086110d5565b9050828160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818160000160146101000a81548161ffff021916908361ffff16021790555060328160020181905550610597600173a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4860016102c9565b6105b8600173dac17f958d2ee523a2206206994597c13d831ec760026102c9565b6105d960027355d398326f99059ff775485246999027b319795560026102c9565b6105fa600273e9e7cea3dedca5984780bafc599bd69add087d5660056102c9565b61061b600673b97ef9ef8734c71904d8002f8b6bc66dd9c48a6e60016102c9565b61063c6006739702230a8ea53601f5cd2dc00fdbc13d4df4a8c760026102c9565b61065d6009732791bca1f2de4661ed88a30c99a7a9449aa8417460016102c9565b61067e600973c2132d05d31c914a87c6611c10748aeb04b58e8f60026102c9565b61069f600a73ff970a61a04b1ca14834a43f5de4533ebddb5cc860016102c9565b6106c0600a73fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb960026102c9565b6106e1600b737f5c764cbc14f9669b88837ca1490cca17c3160760016102c9565b610702600c7304068da6c83afcfa0e13ba15a6696662335d5b7560016102c9565b7fc8ec31998a27444f477c01de93c393769fd4fc017fb63163f71f8a8ab72ccd508383604051610733929190611e1d565b60405180910390a1505050565b61074861103a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156107af576040517f3911c65500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006107b96110d5565b9050818160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9ac04272c4559bf7459414abb5568dc1df58ab649f0af4afd1510074f5cc2fec8260405161082d9190611d87565b60405180910390a15050565b6000806108446110d5565b9050612710816002015461271061085b919061224f565b8461086691906121f5565b61087091906121c4565b915050919050565b600080610883611102565b90506001816000015414156108c4576040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001816000018190555060003411610908576040517fb7586d1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000836000015111610946576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16836020015173ffffffffffffffffffffffffffffffffffffffff1614806109b55750600073ffffffffffffffffffffffffffffffffffffffff16836040015173ffffffffffffffffffffffffffffffffffffffff16145b806109f05750600073ffffffffffffffffffffffffffffffffffffffff168360c0015173ffffffffffffffffffffffffffffffffffffffff16145b80610a2b5750600073ffffffffffffffffffffffffffffffffffffffff168360e0015173ffffffffffffffffffffffffffffffffffffffff16145b15610a62576040517f35be3ac800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610a6c6110d5565b9050610a978160000160149054906101000a900461ffff168560200151866080015161ffff16610d75565b610acd576040517f7790ca9900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ae8846060015185604001518660a0015161ffff16610d75565b610b1e576040517f186c877f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610b2d8560000151610839565b905060008560c00151604051602001610b469190611da2565b6040516020818303038152906040529050610b8c33308860000151896020015173ffffffffffffffffffffffffffffffffffffffff1661112f909392919063ffffffff16565b610be38360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168760000151886020015173ffffffffffffffffffffffffffffffffffffffff166111b89092919063ffffffff16565b8260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639fbf10fc34886060015189608001518a60a00151338c6000015189604051806060016040528062030d408152602001600081526020016040518060400160405280600281526020017f30780000000000000000000000000000000000000000000000000000000000008152508152508f60e00151604051602001610ca39190611d55565b6040516020818303038152906040528b6040518b63ffffffff1660e01b8152600401610cd79998979695949392919061205d565b6000604051808303818588803b158015610cf057600080fd5b505af1158015610d04573d6000803e3d6000fd5b50505050507f7a72e6f4a3d77f8a5a6c536a973421c5bf00107f9aec7995661537673b8be08786602001518760400151338960c001518a600001518b60600151604051610d5696959493929190611eec565b60405180910390a1600194505050506000816000018190555050919050565b600080610d806110d5565b9050828160030160008761ffff1661ffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610dea576000610ded565b60015b9150509392505050565b6000610e016110d5565b90508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e8c576040517fdade3c7100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082806020019051810190610ea291906117aa565b90508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82866040518363ffffffff1660e01b8152600401610edf929190611e46565b602060405180830381600087803b158015610ef957600080fd5b505af1158015610f0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f31919061185e565b507f827e3293895509ef037b7438d4e009f37ad7b2562a14695d9dfd9cb0659842188585604051610f63929190611e46565b60405180910390a15050505050505050565b6000610f7f611102565b9050600181600001541415610fc0576040517f29f745a700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018160000181905550610fd261103a565b610ffd30838673ffffffffffffffffffffffffffffffffffffffff166111b89092919063ffffffff16565b61102a3084848773ffffffffffffffffffffffffffffffffffffffff1661112f909392919063ffffffff16565b6000816000018190555050505050565b611042611316565b60040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ca90611eac565b60405180910390fd5b565b6000807fbaeadb48cbcf0176d6c6ac156b0140abe0fb28a100a9a6a8b5df37e55693b1c890508091505090565b6000807fa65bb2f450488ab0858c00edc14abc5297769bf42adb48cfb77752890e8b697b90508091505090565b6111b2846323b872dd60e01b85858560405160240161115093929190611de6565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611343565b50505050565b6000811480611251575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b81526004016111ff929190611dbd565b60206040518083038186803b15801561121757600080fd5b505afa15801561122b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124f9190611a31565b145b611290576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128790611fa0565b60405180910390fd5b6113118363095ea7b360e01b84846040516024016112af929190611e46565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611343565b505050565b6000807fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c90508091505090565b60006113a5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661140a9092919063ffffffff16565b905060008151111561140557808060200190518101906113c5919061185e565b611404576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fb90611f80565b60405180910390fd5b5b505050565b60606114198484600085611422565b90509392505050565b606082471015611467576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145e90611ecc565b60405180910390fd5b61147085611536565b6114af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a690611f60565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516114d89190611d70565b60006040518083038185875af1925050503d8060008114611515576040519150601f19603f3d011682016040523d82523d6000602084013e61151a565b606091505b509150915061152a828286611559565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60608315611569578290506115b9565b60008351111561157c5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b09190611e8a565b60405180910390fd5b9392505050565b60006115d36115ce8461213f565b61211a565b9050828152602081018484840111156115eb57600080fd5b6115f6848285612352565b509392505050565b60008135905061160d8161264b565b92915050565b60008135905061162281612662565b92915050565b60008151905061163781612662565b92915050565b60008151905061164c81612679565b92915050565b600082601f83011261166357600080fd5b81356116738482602086016115c0565b91505092915050565b6000610100828403121561168f57600080fd5b61169a61010061211a565b905060006116aa84828501611757565b60008301525060206116be848285016115fe565b60208301525060406116d2848285016115fe565b60408301525060606116e684828501611742565b60608301525060806116fa84828501611742565b60808301525060a061170e84828501611742565b60a08301525060c061172284828501611613565b60c08301525060e0611736848285016115fe565b60e08301525092915050565b60008135905061175181612690565b92915050565b600081359050611766816126a7565b92915050565b60008151905061177b816126a7565b92915050565b60006020828403121561179357600080fd5b60006117a1848285016115fe565b91505092915050565b6000602082840312156117bc57600080fd5b60006117ca84828501611628565b91505092915050565b6000806000606084860312156117e857600080fd5b60006117f6868287016115fe565b9350506020611807868287016115fe565b925050604061181886828701611757565b9150509250925092565b6000806040838503121561183557600080fd5b6000611843858286016115fe565b925050602061185485828601611742565b9150509250929050565b60006020828403121561187057600080fd5b600061187e8482850161163d565b91505092915050565b6000610100828403121561189a57600080fd5b60006118a88482850161167c565b91505092915050565b6000806000606084860312156118c657600080fd5b60006118d486828701611742565b93505060206118e5868287016115fe565b92505060406118f6868287016115fe565b9150509250925092565b60008060006060848603121561191557600080fd5b600061192386828701611742565b9350506020611934868287016115fe565b925050604061194586828701611757565b9150509250925092565b60008060008060008060c0878903121561196857600080fd5b600061197689828a01611742565b965050602087013567ffffffffffffffff81111561199357600080fd5b61199f89828a01611652565b95505060406119b089828a01611757565b94505060606119c189828a016115fe565b93505060806119d289828a01611757565b92505060a087013567ffffffffffffffff8111156119ef57600080fd5b6119fb89828a01611652565b9150509295509295509295565b600060208284031215611a1a57600080fd5b6000611a2884828501611757565b91505092915050565b600060208284031215611a4357600080fd5b6000611a518482850161176c565b91505092915050565b60008060408385031215611a6d57600080fd5b6000611a7b8582860161176c565b9250506020611a8c8582860161176c565b9150509250929050565b611a9f816122f8565b82525050565b611aae81612295565b82525050565b611abd81612283565b82525050565b611ad4611acf82612283565b6123c5565b82525050565b611ae3816122a7565b82525050565b6000611af482612170565b611afe8185612186565b9350611b0e818560208601612361565b611b1781612476565b840191505092915050565b6000611b2d82612170565b611b378185612197565b9350611b47818560208601612361565b611b5081612476565b840191505092915050565b6000611b6682612170565b611b7081856121a8565b9350611b80818560208601612361565b80840191505092915050565b611b958161230a565b82525050565b6000611ba68261217b565b611bb081856121b3565b9350611bc0818560208601612361565b611bc981612476565b840191505092915050565b6000611be16022836121b3565b9150611bec82612494565b604082019050919050565b6000611c04600283612197565b9150611c0f826124e3565b602082019050919050565b6000611c276026836121b3565b9150611c328261250c565b604082019050919050565b6000611c4a6008836121b3565b9150611c558261255b565b602082019050919050565b6000611c6d601d836121b3565b9150611c7882612584565b602082019050919050565b6000611c90602a836121b3565b9150611c9b826125ad565b604082019050919050565b6000611cb36036836121b3565b9150611cbe826125fc565b604082019050919050565b6000606083016000830151611ce16000860182611d37565b506020830151611cf46020860182611d37565b5060408301518482036040860152611d0c8282611ae9565b9150508091505092915050565b611d22816122b3565b82525050565b611d3181612340565b82525050565b611d40816122e1565b82525050565b611d4f816122e1565b82525050565b6000611d618284611ac3565b60148201915081905092915050565b6000611d7c8284611b5b565b915081905092915050565b6000602082019050611d9c6000830184611ab4565b92915050565b6000602082019050611db76000830184611aa5565b92915050565b6000604082019050611dd26000830185611ab4565b611ddf6020830184611ab4565b9392505050565b6000606082019050611dfb6000830186611ab4565b611e086020830185611ab4565b611e156040830184611d46565b949350505050565b6000604082019050611e326000830185611ab4565b611e3f6020830184611d19565b9392505050565b6000604082019050611e5b6000830185611ab4565b611e686020830184611d46565b9392505050565b6000602082019050611e846000830184611ada565b92915050565b60006020820190508181036000830152611ea48184611b9b565b905092915050565b60006020820190508181036000830152611ec581611bd4565b9050919050565b60006020820190508181036000830152611ee581611c1a565b9050919050565b600060e0820190508181036000830152611f0581611c3d565b9050611f146020830189611ab4565b611f216040830188611ab4565b611f2e6060830187611ab4565b611f3b6080830186611a96565b611f4860a0830185611d46565b611f5560c0830184611d19565b979650505050505050565b60006020820190508181036000830152611f7981611c60565b9050919050565b60006020820190508181036000830152611f9981611c83565b9050919050565b60006020820190508181036000830152611fb981611ca6565b9050919050565b6000606082019050611fd56000830186611d19565b611fe26020830185611ab4565b611fef6040830184611d46565b949350505050565b600060a08201905061200c6000830187611d19565b6120196020830186611b8c565b818103604083015261202b8185611b22565b9050818103606083015261203e81611bf7565b905081810360808301526120528184611cc9565b905095945050505050565b600061012082019050612073600083018c611d19565b612080602083018b611d28565b61208d604083018a611d28565b61209a6060830189611aa5565b6120a76080830188611d46565b6120b460a0830187611d46565b81810360c08301526120c68186611cc9565b905081810360e08301526120da8185611b22565b90508181036101008301526120ef8184611b22565b90509a9950505050505050505050565b60006020820190506121146000830184611d46565b92915050565b6000612124612135565b90506121308282612394565b919050565b6000604051905090565b600067ffffffffffffffff82111561215a57612159612447565b5b61216382612476565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006121cf826122e1565b91506121da836122e1565b9250826121ea576121e9612418565b5b828204905092915050565b6000612200826122e1565b915061220b836122e1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612244576122436123e9565b5b828202905092915050565b600061225a826122e1565b9150612265836122e1565b925082821015612278576122776123e9565b5b828203905092915050565b600061228e826122c1565b9050919050565b60006122a0826122c1565b9050919050565b60008115159050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006123038261231c565b9050919050565b6000612315826122eb565b9050919050565b60006123278261232e565b9050919050565b6000612339826122c1565b9050919050565b600061234b826122b3565b9050919050565b82818337600083830152505050565b60005b8381101561237f578082015181840152602081019050612364565b8381111561238e576000848401525b50505050565b61239d82612476565b810181811067ffffffffffffffff821117156123bc576123bb612447565b5b80604052505050565b60006123d0826123d7565b9050919050565b60006123e282612487565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b7f3078000000000000000000000000000000000000000000000000000000000000600082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f7374617267617465000000000000000000000000000000000000000000000000600082015250565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60008201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000602082015250565b61265481612283565b811461265f57600080fd5b50565b61266b81612295565b811461267657600080fd5b50565b612682816122a7565b811461268d57600080fd5b50565b612699816122b3565b81146126a457600080fd5b50565b6126b0816122e1565b81146126bb57600080fd5b5056fea26469706673582212205925f021cf49e0781dce4a9176cd460ade79205f37ae12e8df85aecee8f9a52a64736f6c63430008040033",
							"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x95 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x618C3F29 GT PUSH2 0x59 JUMPI DUP1 PUSH4 0x618C3F29 EQ PUSH2 0x182 JUMPI DUP1 PUSH4 0x6ACF5E3F EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x90F12364 EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0xAB8236F3 EQ PUSH2 0x22C JUMPI DUP1 PUSH4 0xC722A336 EQ PUSH2 0x255 JUMPI PUSH2 0x9C JUMP JUMPDEST DUP1 PUSH4 0x217AABB7 EQ PUSH2 0xA1 JUMPI DUP1 PUSH4 0x2AAD46E3 EQ PUSH2 0xCA JUMPI DUP1 PUSH4 0x42D910C6 EQ PUSH2 0xF3 JUMPI DUP1 PUSH4 0x498EE469 EQ PUSH2 0x130 JUMPI DUP1 PUSH4 0x4BE85C35 EQ PUSH2 0x159 JUMPI PUSH2 0x9C JUMP JUMPDEST CALLDATASIZE PUSH2 0x9C JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0x1A08 JUMP JUMPDEST PUSH2 0x271 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xEC SWAP2 SWAP1 PUSH2 0x1900 JUMP JUMPDEST PUSH2 0x2C9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xFF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x115 SWAP2 SWAP1 PUSH2 0x18B1 JUMP JUMPDEST PUSH2 0x37D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x127 SWAP2 SWAP1 PUSH2 0x20FF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x157 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x152 SWAP2 SWAP1 PUSH2 0x1822 JUMP JUMPDEST PUSH2 0x48F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x165 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x180 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17B SWAP2 SWAP1 PUSH2 0x1781 JUMP JUMPDEST PUSH2 0x740 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A4 SWAP2 SWAP1 PUSH2 0x1A08 JUMP JUMPDEST PUSH2 0x839 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x20FF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1887 JUMP JUMPDEST PUSH2 0x878 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1E6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x216 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x211 SWAP2 SWAP1 PUSH2 0x1900 JUMP JUMPDEST PUSH2 0xD75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x223 SWAP2 SWAP1 PUSH2 0x1E6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x238 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x253 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x24E SWAP2 SWAP1 PUSH2 0x194F JUMP JUMPDEST PUSH2 0xDF7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x26F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x26A SWAP2 SWAP1 PUSH2 0x17D3 JUMP JUMPDEST PUSH2 0xF75 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x279 PUSH2 0x103A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x283 PUSH2 0x10D5 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP PUSH32 0x45934903F6B10AFF9D3435B8362D284D95D14CA68E8554F05F04C7856A6003C0 DUP3 PUSH1 0x40 MLOAD PUSH2 0x2BD SWAP2 SWAP1 PUSH2 0x20FF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x2D1 PUSH2 0x103A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DB PUSH2 0x10D5 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 PUSH1 0x3 ADD PUSH1 0x0 DUP7 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH32 0x5A600144B7B71CA7EE988E17E7745E8D46EB24056D4818716BE29FA976393A8E DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x36F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1FC0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA512369 DUP7 PUSH1 0x1 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3B0 SWAP2 SWAP1 PUSH2 0x1D55 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH3 0x30D40 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3078000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x432 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1FF7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x449 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x45D 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 0x481 SWAP2 SWAP1 PUSH2 0x1A5A JUMP JUMPDEST POP SWAP1 POP DUP1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x4F6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x35BE3AC800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4FE PUSH2 0x103A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x508 PUSH2 0x10D5 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 DUP2 PUSH1 0x0 ADD PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH2 0xFFFF MUL NOT AND SWAP1 DUP4 PUSH2 0xFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x32 DUP2 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP PUSH2 0x597 PUSH1 0x1 PUSH20 0xA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48 PUSH1 0x1 PUSH2 0x2C9 JUMP JUMPDEST PUSH2 0x5B8 PUSH1 0x1 PUSH20 0xDAC17F958D2EE523A2206206994597C13D831EC7 PUSH1 0x2 PUSH2 0x2C9 JUMP JUMPDEST PUSH2 0x5D9 PUSH1 0x2 PUSH20 0x55D398326F99059FF775485246999027B3197955 PUSH1 0x2 PUSH2 0x2C9 JUMP JUMPDEST PUSH2 0x5FA PUSH1 0x2 PUSH20 0xE9E7CEA3DEDCA5984780BAFC599BD69ADD087D56 PUSH1 0x5 PUSH2 0x2C9 JUMP JUMPDEST PUSH2 0x61B PUSH1 0x6 PUSH20 0xB97EF9EF8734C71904D8002F8B6BC66DD9C48A6E PUSH1 0x1 PUSH2 0x2C9 JUMP JUMPDEST PUSH2 0x63C PUSH1 0x6 PUSH20 0x9702230A8EA53601F5CD2DC00FDBC13D4DF4A8C7 PUSH1 0x2 PUSH2 0x2C9 JUMP JUMPDEST PUSH2 0x65D PUSH1 0x9 PUSH20 0x2791BCA1F2DE4661ED88A30C99A7A9449AA84174 PUSH1 0x1 PUSH2 0x2C9 JUMP JUMPDEST PUSH2 0x67E PUSH1 0x9 PUSH20 0xC2132D05D31C914A87C6611C10748AEB04B58E8F PUSH1 0x2 PUSH2 0x2C9 JUMP JUMPDEST PUSH2 0x69F PUSH1 0xA PUSH20 0xFF970A61A04B1CA14834A43F5DE4533EBDDB5CC8 PUSH1 0x1 PUSH2 0x2C9 JUMP JUMPDEST PUSH2 0x6C0 PUSH1 0xA PUSH20 0xFD086BC7CD5C481DCC9C85EBE478A1C0B69FCBB9 PUSH1 0x2 PUSH2 0x2C9 JUMP JUMPDEST PUSH2 0x6E1 PUSH1 0xB PUSH20 0x7F5C764CBC14F9669B88837CA1490CCA17C31607 PUSH1 0x1 PUSH2 0x2C9 JUMP JUMPDEST PUSH2 0x702 PUSH1 0xC PUSH20 0x4068DA6C83AFCFA0E13BA15A6696662335D5B75 PUSH1 0x1 PUSH2 0x2C9 JUMP JUMPDEST PUSH32 0xC8EC31998A27444F477C01DE93C393769FD4FC017FB63163F71F8A8AB72CCD50 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x733 SWAP3 SWAP2 SWAP1 PUSH2 0x1E1D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x748 PUSH2 0x103A JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x7AF JUMPI PUSH1 0x40 MLOAD PUSH32 0x3911C65500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x7B9 PUSH2 0x10D5 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x9AC04272C4559BF7459414ABB5568DC1DF58AB649F0AF4AFD1510074F5CC2FEC DUP3 PUSH1 0x40 MLOAD PUSH2 0x82D SWAP2 SWAP1 PUSH2 0x1D87 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x844 PUSH2 0x10D5 JUMP JUMPDEST SWAP1 POP PUSH2 0x2710 DUP2 PUSH1 0x2 ADD SLOAD PUSH2 0x2710 PUSH2 0x85B SWAP2 SWAP1 PUSH2 0x224F JUMP JUMPDEST DUP5 PUSH2 0x866 SWAP2 SWAP1 PUSH2 0x21F5 JUMP JUMPDEST PUSH2 0x870 SWAP2 SWAP1 PUSH2 0x21C4 JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x883 PUSH2 0x1102 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP2 PUSH1 0x0 ADD SLOAD EQ ISZERO PUSH2 0x8C4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x29F745A700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x0 CALLVALUE GT PUSH2 0x908 JUMPI PUSH1 0x40 MLOAD PUSH32 0xB7586D1900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x0 ADD MLOAD GT PUSH2 0x946 JUMPI PUSH1 0x40 MLOAD PUSH32 0x2C5211C600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x9B5 JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0x40 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST DUP1 PUSH2 0x9F0 JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0xC0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST DUP1 PUSH2 0xA2B JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0xE0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0xA62 JUMPI PUSH1 0x40 MLOAD PUSH32 0x35BE3AC800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xA6C PUSH2 0x10D5 JUMP JUMPDEST SWAP1 POP PUSH2 0xA97 DUP2 PUSH1 0x0 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x80 ADD MLOAD PUSH2 0xFFFF AND PUSH2 0xD75 JUMP JUMPDEST PUSH2 0xACD JUMPI PUSH1 0x40 MLOAD PUSH32 0x7790CA9900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xAE8 DUP5 PUSH1 0x60 ADD MLOAD DUP6 PUSH1 0x40 ADD MLOAD DUP7 PUSH1 0xA0 ADD MLOAD PUSH2 0xFFFF AND PUSH2 0xD75 JUMP JUMPDEST PUSH2 0xB1E JUMPI PUSH1 0x40 MLOAD PUSH32 0x186C877F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xB2D DUP6 PUSH1 0x0 ADD MLOAD PUSH2 0x839 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP6 PUSH1 0xC0 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xB46 SWAP2 SWAP1 PUSH2 0x1DA2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0xB8C CALLER ADDRESS DUP9 PUSH1 0x0 ADD MLOAD DUP10 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x112F SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0xBE3 DUP4 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH1 0x0 ADD MLOAD DUP9 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x11B8 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP3 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x9FBF10FC CALLVALUE DUP9 PUSH1 0x60 ADD MLOAD DUP10 PUSH1 0x80 ADD MLOAD DUP11 PUSH1 0xA0 ADD MLOAD CALLER DUP13 PUSH1 0x0 ADD MLOAD DUP10 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH3 0x30D40 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3078000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 MSTORE POP DUP16 PUSH1 0xE0 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xCA3 SWAP2 SWAP1 PUSH2 0x1D55 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP12 PUSH1 0x40 MLOAD DUP12 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCD7 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x205D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCF0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD04 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH32 0x7A72E6F4A3D77F8A5A6C536A973421C5BF00107F9AEC7995661537673B8BE087 DUP7 PUSH1 0x20 ADD MLOAD DUP8 PUSH1 0x40 ADD MLOAD CALLER DUP10 PUSH1 0xC0 ADD MLOAD DUP11 PUSH1 0x0 ADD MLOAD DUP12 PUSH1 0x60 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0xD56 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1EEC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 SWAP5 POP POP POP POP PUSH1 0x0 DUP2 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xD80 PUSH2 0x10D5 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 PUSH1 0x3 ADD PUSH1 0x0 DUP8 PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD EQ PUSH2 0xDEA JUMPI PUSH1 0x0 PUSH2 0xDED JUMP JUMPDEST PUSH1 0x1 JUMPDEST SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE01 PUSH2 0x10D5 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xE8C JUMPI PUSH1 0x40 MLOAD PUSH32 0xDADE3C7100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xEA2 SWAP2 SWAP1 PUSH2 0x17AA JUMP JUMPDEST SWAP1 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP3 DUP7 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEDF SWAP3 SWAP2 SWAP1 PUSH2 0x1E46 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF0D 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 0xF31 SWAP2 SWAP1 PUSH2 0x185E JUMP JUMPDEST POP PUSH32 0x827E3293895509EF037B7438D4E009F37AD7B2562A14695D9DFD9CB065984218 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0xF63 SWAP3 SWAP2 SWAP1 PUSH2 0x1E46 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF7F PUSH2 0x1102 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP2 PUSH1 0x0 ADD SLOAD EQ ISZERO PUSH2 0xFC0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x29F745A700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP PUSH2 0xFD2 PUSH2 0x103A JUMP JUMPDEST PUSH2 0xFFD ADDRESS DUP4 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x11B8 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x102A ADDRESS DUP5 DUP5 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x112F SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1042 PUSH2 0x1316 JUMP JUMPDEST PUSH1 0x4 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x10D3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10CA SWAP1 PUSH2 0x1EAC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0xBAEADB48CBCF0176D6C6AC156B0140ABE0FB28A100A9A6A8B5DF37E55693B1C8 SWAP1 POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0xA65BB2F450488AB0858C00EDC14ABC5297769BF42ADB48CFB77752890E8B697B SWAP1 POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH2 0x11B2 DUP5 PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1150 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1DE6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x1343 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 EQ DUP1 PUSH2 0x1251 JUMPI POP PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDD62ED3E ADDRESS DUP6 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11FF SWAP3 SWAP2 SWAP1 PUSH2 0x1DBD JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1217 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x122B 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 0x124F SWAP2 SWAP1 PUSH2 0x1A31 JUMP JUMPDEST EQ JUMPDEST PUSH2 0x1290 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1287 SWAP1 PUSH2 0x1FA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1311 DUP4 PUSH4 0x95EA7B3 PUSH1 0xE0 SHL DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x12AF SWAP3 SWAP2 SWAP1 PUSH2 0x1E46 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x1343 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0xC8FCAD8DB84D3CC18B4C41D551EA0EE66DD599CDE068D998E57D5E09332C131C SWAP1 POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13A5 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x140A SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0x1405 JUMPI DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x13C5 SWAP2 SWAP1 PUSH2 0x185E JUMP JUMPDEST PUSH2 0x1404 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13FB SWAP1 PUSH2 0x1F80 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1419 DUP5 DUP5 PUSH1 0x0 DUP6 PUSH2 0x1422 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x1467 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x145E SWAP1 PUSH2 0x1ECC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1470 DUP6 PUSH2 0x1536 JUMP JUMPDEST PUSH2 0x14AF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14A6 SWAP1 PUSH2 0x1F60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x14D8 SWAP2 SWAP1 PUSH2 0x1D70 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 0x1515 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 0x151A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x152A DUP3 DUP3 DUP7 PUSH2 0x1559 JUMP JUMPDEST SWAP3 POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x1569 JUMPI DUP3 SWAP1 POP PUSH2 0x15B9 JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD GT ISZERO PUSH2 0x157C JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15B0 SWAP2 SWAP1 PUSH2 0x1E8A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15D3 PUSH2 0x15CE DUP5 PUSH2 0x213F JUMP JUMPDEST PUSH2 0x211A JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x15EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x15F6 DUP5 DUP3 DUP6 PUSH2 0x2352 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x160D DUP2 PUSH2 0x264B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1622 DUP2 PUSH2 0x2662 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1637 DUP2 PUSH2 0x2662 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x164C DUP2 PUSH2 0x2679 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1663 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1673 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x15C0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x100 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x168F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x169A PUSH2 0x100 PUSH2 0x211A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x16AA DUP5 DUP3 DUP6 ADD PUSH2 0x1757 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x16BE DUP5 DUP3 DUP6 ADD PUSH2 0x15FE JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x16D2 DUP5 DUP3 DUP6 ADD PUSH2 0x15FE JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x16E6 DUP5 DUP3 DUP6 ADD PUSH2 0x1742 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x16FA DUP5 DUP3 DUP6 ADD PUSH2 0x1742 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x170E DUP5 DUP3 DUP6 ADD PUSH2 0x1742 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x1722 DUP5 DUP3 DUP6 ADD PUSH2 0x1613 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x1736 DUP5 DUP3 DUP6 ADD PUSH2 0x15FE JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1751 DUP2 PUSH2 0x2690 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1766 DUP2 PUSH2 0x26A7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x177B DUP2 PUSH2 0x26A7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1793 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x17A1 DUP5 DUP3 DUP6 ADD PUSH2 0x15FE JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x17CA DUP5 DUP3 DUP6 ADD PUSH2 0x1628 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x17E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x17F6 DUP7 DUP3 DUP8 ADD PUSH2 0x15FE JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1807 DUP7 DUP3 DUP8 ADD PUSH2 0x15FE JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1818 DUP7 DUP3 DUP8 ADD PUSH2 0x1757 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1835 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1843 DUP6 DUP3 DUP7 ADD PUSH2 0x15FE JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1854 DUP6 DUP3 DUP7 ADD PUSH2 0x1742 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1870 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x187E DUP5 DUP3 DUP6 ADD PUSH2 0x163D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x100 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x189A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x18A8 DUP5 DUP3 DUP6 ADD PUSH2 0x167C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x18C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x18D4 DUP7 DUP3 DUP8 ADD PUSH2 0x1742 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x18E5 DUP7 DUP3 DUP8 ADD PUSH2 0x15FE JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x18F6 DUP7 DUP3 DUP8 ADD PUSH2 0x15FE JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1915 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1923 DUP7 DUP3 DUP8 ADD PUSH2 0x1742 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1934 DUP7 DUP3 DUP8 ADD PUSH2 0x15FE JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1945 DUP7 DUP3 DUP8 ADD PUSH2 0x1757 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1968 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1976 DUP10 DUP3 DUP11 ADD PUSH2 0x1742 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1993 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x199F DUP10 DUP3 DUP11 ADD PUSH2 0x1652 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x19B0 DUP10 DUP3 DUP11 ADD PUSH2 0x1757 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x19C1 DUP10 DUP3 DUP11 ADD PUSH2 0x15FE JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0x19D2 DUP10 DUP3 DUP11 ADD PUSH2 0x1757 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x19FB DUP10 DUP3 DUP11 ADD PUSH2 0x1652 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1A28 DUP5 DUP3 DUP6 ADD PUSH2 0x1757 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A43 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1A51 DUP5 DUP3 DUP6 ADD PUSH2 0x176C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A6D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1A7B DUP6 DUP3 DUP7 ADD PUSH2 0x176C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A8C DUP6 DUP3 DUP7 ADD PUSH2 0x176C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A9F DUP2 PUSH2 0x22F8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1AAE DUP2 PUSH2 0x2295 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1ABD DUP2 PUSH2 0x2283 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1AD4 PUSH2 0x1ACF DUP3 PUSH2 0x2283 JUMP JUMPDEST PUSH2 0x23C5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1AE3 DUP2 PUSH2 0x22A7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AF4 DUP3 PUSH2 0x2170 JUMP JUMPDEST PUSH2 0x1AFE DUP2 DUP6 PUSH2 0x2186 JUMP JUMPDEST SWAP4 POP PUSH2 0x1B0E DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2361 JUMP JUMPDEST PUSH2 0x1B17 DUP2 PUSH2 0x2476 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B2D DUP3 PUSH2 0x2170 JUMP JUMPDEST PUSH2 0x1B37 DUP2 DUP6 PUSH2 0x2197 JUMP JUMPDEST SWAP4 POP PUSH2 0x1B47 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2361 JUMP JUMPDEST PUSH2 0x1B50 DUP2 PUSH2 0x2476 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B66 DUP3 PUSH2 0x2170 JUMP JUMPDEST PUSH2 0x1B70 DUP2 DUP6 PUSH2 0x21A8 JUMP JUMPDEST SWAP4 POP PUSH2 0x1B80 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2361 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1B95 DUP2 PUSH2 0x230A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1BA6 DUP3 PUSH2 0x217B JUMP JUMPDEST PUSH2 0x1BB0 DUP2 DUP6 PUSH2 0x21B3 JUMP JUMPDEST SWAP4 POP PUSH2 0x1BC0 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2361 JUMP JUMPDEST PUSH2 0x1BC9 DUP2 PUSH2 0x2476 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1BE1 PUSH1 0x22 DUP4 PUSH2 0x21B3 JUMP JUMPDEST SWAP2 POP PUSH2 0x1BEC DUP3 PUSH2 0x2494 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C04 PUSH1 0x2 DUP4 PUSH2 0x2197 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C0F DUP3 PUSH2 0x24E3 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C27 PUSH1 0x26 DUP4 PUSH2 0x21B3 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C32 DUP3 PUSH2 0x250C JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C4A PUSH1 0x8 DUP4 PUSH2 0x21B3 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C55 DUP3 PUSH2 0x255B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C6D PUSH1 0x1D DUP4 PUSH2 0x21B3 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C78 DUP3 PUSH2 0x2584 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C90 PUSH1 0x2A DUP4 PUSH2 0x21B3 JUMP JUMPDEST SWAP2 POP PUSH2 0x1C9B DUP3 PUSH2 0x25AD JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1CB3 PUSH1 0x36 DUP4 PUSH2 0x21B3 JUMP JUMPDEST SWAP2 POP PUSH2 0x1CBE DUP3 PUSH2 0x25FC JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0x1CE1 PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0x1D37 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x1CF4 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x1D37 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x1D0C DUP3 DUP3 PUSH2 0x1AE9 JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1D22 DUP2 PUSH2 0x22B3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1D31 DUP2 PUSH2 0x2340 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1D40 DUP2 PUSH2 0x22E1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1D4F DUP2 PUSH2 0x22E1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D61 DUP3 DUP5 PUSH2 0x1AC3 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D7C DUP3 DUP5 PUSH2 0x1B5B JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D9C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1AB4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1DB7 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1AA5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1DD2 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1AB4 JUMP JUMPDEST PUSH2 0x1DDF PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1AB4 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1DFB PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1AB4 JUMP JUMPDEST PUSH2 0x1E08 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1AB4 JUMP JUMPDEST PUSH2 0x1E15 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1D46 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E32 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1AB4 JUMP JUMPDEST PUSH2 0x1E3F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1D19 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E5B PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1AB4 JUMP JUMPDEST PUSH2 0x1E68 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1D46 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1E84 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1ADA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1EA4 DUP2 DUP5 PUSH2 0x1B9B JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1EC5 DUP2 PUSH2 0x1BD4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1EE5 DUP2 PUSH2 0x1C1A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xE0 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1F05 DUP2 PUSH2 0x1C3D JUMP JUMPDEST SWAP1 POP PUSH2 0x1F14 PUSH1 0x20 DUP4 ADD DUP10 PUSH2 0x1AB4 JUMP JUMPDEST PUSH2 0x1F21 PUSH1 0x40 DUP4 ADD DUP9 PUSH2 0x1AB4 JUMP JUMPDEST PUSH2 0x1F2E PUSH1 0x60 DUP4 ADD DUP8 PUSH2 0x1AB4 JUMP JUMPDEST PUSH2 0x1F3B PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x1A96 JUMP JUMPDEST PUSH2 0x1F48 PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x1D46 JUMP JUMPDEST PUSH2 0x1F55 PUSH1 0xC0 DUP4 ADD DUP5 PUSH2 0x1D19 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1F79 DUP2 PUSH2 0x1C60 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1F99 DUP2 PUSH2 0x1C83 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1FB9 DUP2 PUSH2 0x1CA6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1FD5 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1D19 JUMP JUMPDEST PUSH2 0x1FE2 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1AB4 JUMP JUMPDEST PUSH2 0x1FEF PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1D46 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x200C PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x1D19 JUMP JUMPDEST PUSH2 0x2019 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1B8C JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x202B DUP2 DUP6 PUSH2 0x1B22 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x203E DUP2 PUSH2 0x1BF7 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x2052 DUP2 DUP5 PUSH2 0x1CC9 JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP3 ADD SWAP1 POP PUSH2 0x2073 PUSH1 0x0 DUP4 ADD DUP13 PUSH2 0x1D19 JUMP JUMPDEST PUSH2 0x2080 PUSH1 0x20 DUP4 ADD DUP12 PUSH2 0x1D28 JUMP JUMPDEST PUSH2 0x208D PUSH1 0x40 DUP4 ADD DUP11 PUSH2 0x1D28 JUMP JUMPDEST PUSH2 0x209A PUSH1 0x60 DUP4 ADD DUP10 PUSH2 0x1AA5 JUMP JUMPDEST PUSH2 0x20A7 PUSH1 0x80 DUP4 ADD DUP9 PUSH2 0x1D46 JUMP JUMPDEST PUSH2 0x20B4 PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x1D46 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0xC0 DUP4 ADD MSTORE PUSH2 0x20C6 DUP2 DUP7 PUSH2 0x1CC9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x20DA DUP2 DUP6 PUSH2 0x1B22 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x20EF DUP2 DUP5 PUSH2 0x1B22 JUMP JUMPDEST SWAP1 POP SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2114 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1D46 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2124 PUSH2 0x2135 JUMP JUMPDEST SWAP1 POP PUSH2 0x2130 DUP3 DUP3 PUSH2 0x2394 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x215A JUMPI PUSH2 0x2159 PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH2 0x2163 DUP3 PUSH2 0x2476 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x21CF DUP3 PUSH2 0x22E1 JUMP JUMPDEST SWAP2 POP PUSH2 0x21DA DUP4 PUSH2 0x22E1 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x21EA JUMPI PUSH2 0x21E9 PUSH2 0x2418 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2200 DUP3 PUSH2 0x22E1 JUMP JUMPDEST SWAP2 POP PUSH2 0x220B DUP4 PUSH2 0x22E1 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2244 JUMPI PUSH2 0x2243 PUSH2 0x23E9 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x225A DUP3 PUSH2 0x22E1 JUMP JUMPDEST SWAP2 POP PUSH2 0x2265 DUP4 PUSH2 0x22E1 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x2278 JUMPI PUSH2 0x2277 PUSH2 0x23E9 JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x228E DUP3 PUSH2 0x22C1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x22A0 DUP3 PUSH2 0x22C1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2303 DUP3 PUSH2 0x231C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2315 DUP3 PUSH2 0x22EB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2327 DUP3 PUSH2 0x232E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2339 DUP3 PUSH2 0x22C1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x234B DUP3 PUSH2 0x22B3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x237F JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2364 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x238E JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x239D DUP3 PUSH2 0x2476 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x23BC JUMPI PUSH2 0x23BB PUSH2 0x2447 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23D0 DUP3 PUSH2 0x23D7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23E2 DUP3 PUSH2 0x2487 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4C69624469616D6F6E643A204D75737420626520636F6E7472616374206F776E PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6572000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x3078000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x722063616C6C0000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x7374617267617465000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F74207375636365656400000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x5361666545524332303A20617070726F76652066726F6D206E6F6E2D7A65726F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x20746F206E6F6E2D7A65726F20616C6C6F77616E636500000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x2654 DUP2 PUSH2 0x2283 JUMP JUMPDEST DUP2 EQ PUSH2 0x265F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x266B DUP2 PUSH2 0x2295 JUMP JUMPDEST DUP2 EQ PUSH2 0x2676 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x2682 DUP2 PUSH2 0x22A7 JUMP JUMPDEST DUP2 EQ PUSH2 0x268D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x2699 DUP2 PUSH2 0x22B3 JUMP JUMPDEST DUP2 EQ PUSH2 0x26A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x26B0 DUP2 PUSH2 0x22E1 JUMP JUMPDEST DUP2 EQ PUSH2 0x26BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MSIZE 0x25 CREATE 0x21 0xCF 0x49 0xE0 PUSH25 0x1DCE4A9176CD460ADE79205F37AE12E8DF85AECEE8F9A52A64 PUSH20 0x6F6C634300080400330000000000000000000000 ",
							"sourceMap": "910:9349:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8626:250;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9200:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7567:511;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2848:1248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8305:315;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8084:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4184:2501;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9506:249;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7038:523;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8882:312;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8626:250;8702:35;:33;:35::i;:::-;8747:17;8767:12;:10;:12::i;:::-;8747:32;;8802:12;8789:1;:10;;:25;;;;8829:40;8856:12;8829:40;;;;;;:::i;:::-;;;;;;;;8626:250;;:::o;9200:300::-;9316:35;:33;:35::i;:::-;9361:17;9381:12;:10;:12::i;:::-;9361:32;;9433:7;9403:1;:9;;:19;9413:8;9403:19;;;;;;;;;;;;;;;:27;9423:6;9403:27;;;;;;;;;;;;;;;:37;;;;9455:38;9467:8;9477:6;9485:7;9455:38;;;;;;;;:::i;:::-;;;;;;;;9200:300;;;;:::o;7567:511::-;7698:7;7718:17;7757:7;7741:42;;;7797:10;7845:1;7889:9;7872:27;;;;;;;;:::i;:::-;;;;;;;;;;;;;7995:40;;;;;;;;8019:6;7995:40;;;;8027:1;7995:40;;;;;;;;;;;;;;;;;;;;;;;;7741:304;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7717:328;;;8062:9;8055:16;;;7567:511;;;;;:::o;2848:1248::-;2962:1;2935:29;;:15;:29;;;2931:57;;;2973:15;;;;;;;;;;;;;;2931:57;2998:35;:33;:35::i;:::-;3043:17;3063:12;:10;:12::i;:::-;3043:32;;3112:15;3085:1;:16;;;:43;;;;;;;;;;;;;;;;;;3150:8;3138:1;:9;;;:20;;;;;;;;;;;;;;;;;;3181:2;3168:1;:10;;:15;;;;3212:59;3222:1;3225:42;3269:1;3212:9;:59::i;:::-;3281;3291:1;3294:42;3338:1;3281:9;:59::i;:::-;3350;3360:1;3363:42;3407:1;3350:9;:59::i;:::-;3419;3429:1;3432:42;3476:1;3419:9;:59::i;:::-;3488;3498:1;3501:42;3545:1;3488:9;:59::i;:::-;3557;3567:1;3570:42;3614:1;3557:9;:59::i;:::-;3626;3636:1;3639:42;3683:1;3626:9;:59::i;:::-;3695;3705:1;3708:42;3752:1;3695:9;:59::i;:::-;3764:60;3774:2;3778:42;3822:1;3764:9;:60::i;:::-;3834;3844:2;3848:42;3892:1;3834:9;:60::i;:::-;3904;3914:2;3918:42;3962:1;3904:9;:60::i;:::-;3974;3984:2;3988:42;4032:1;3974:9;:60::i;:::-;4049:40;4063:15;4080:8;4049:40;;;;;;;:::i;:::-;;;;;;;;2848:1248;;;:::o;8305:315::-;8369:35;:33;:35::i;:::-;8441:1;8418:25;;:11;:25;;;8414:65;;;8452:27;;;;;;;;;;;;;;8414:65;8489:17;8509:12;:10;:12::i;:::-;8489:32;;8558:11;8531:1;:16;;;:39;;;;;;;;;;;;;;;;;;8585:28;8601:11;8585:28;;;;;;:::i;:::-;;;;;;;;8305:315;;:::o;8084:215::-;8146:7;8165:17;8185:12;:10;:12::i;:::-;8165:32;;8286:5;8270:1;:10;;;8262:5;:18;;;;:::i;:::-;8251:7;:30;;;;:::i;:::-;8250:42;;;;:::i;:::-;8243:49;;;8084:215;;;:::o;4184:2501::-;4308:4;680:27:7;710:19;:17;:19::i;:::-;680:49;;615:1;743;:8;;;:20;739:50;;;772:17;;;;;;;;;;;;;;739:50;615:1;799;:8;;:19;;;;4345:1:6::1;4332:9;:14;4328:59;;4355:32;;;;;;;;;;;;;;4328:59;4416:1;4401:7;:11;;;:16;4397:44;;4426:15;;;;;;;;;;;;;;4397:44;4497:1;4468:31;;:7;:17;;;:31;;;:76;;;;4542:1;4515:29;;:7;:15;;;:29;;;4468:76;:116;;;;4582:1;4560:24;;:7;:10;;;:24;;;4468:116;:174;;;;4640:1;4600:42;;:7;:28;;;:42;;;4468:174;4451:224;;;4660:15;;;;;;;;;;;;;;4451:224;4712:17;4732:12;:10;:12::i;:::-;4712:32;;4760:62;4774:1;:9;;;;;;;;;;;;4785:7;:17;;;4804:7;:17;;;4760:62;;:13;:62::i;:::-;4755:109;;4843:21;;;;;;;;;;;;;;4755:109;4892:131;4923:7;:18;;;4959:7;:15;;;4992:7;:17;;;4892:131;;:13;:131::i;:::-;4874:193;;5041:26;;;;;;;;;;;;;;4874:193;5108:20;5131:27;5146:7;:11;;;5131:14;:27::i;:::-;5108:50;;5271:20;5305:7;:10;;;5294:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;5271:45;;5374:128;5430:10;5462:4;5481:7;:11;;;5381:7;:17;;;5374:42;;;;:128;;;;;;:::i;:::-;5513:111;5572:1;:16;;;;;;;;;;;;5603:7;:11;;;5520:7;:17;;;5513:37;;;;:111;;;;;:::i;:::-;5739:1;:16;;;;;;;;;;;;5723:38;;;5769:9;5793:7;:18;;;5853:7;:17;;;5914:7;:17;;;5988:10;6083:7;:11;;;6153:12;6205:40;;;;;;;;6229:6;6205:40;;;;6237:1;6205:40;;;;;;;;;;;;;;;;;;;;::::0;::::1;;::::0;6295:7:::1;:28;;;6278:46;;;;;;;;:::i;:::-;;;;;;;;;;;;;6390:7;5723:701;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;6440:216;6495:7;:17;;;6526:7;:15;;;6555:10;6579:7;:10;;;6603:7;:11;;;6628:7;:18;;;6440:216;;;;;;;;;;;:::i;:::-;;;;;;;;6674:4;6667:11;;;;;572:1:7::0;839;:8;;:23;;;;4184:2501:6;;;;:::o;9506:249::-;9630:4;9646:17;9666:12;:10;:12::i;:::-;9646:32;;9726:7;9695:1;:9;;:19;9705:8;9695:19;;;;;;;;;;;;;;;:27;9715:6;9695:27;;;;;;;;;;;;;;;;:38;:53;;9743:5;9695:53;;;9736:4;9695:53;9688:60;;;9506:249;;;;;:::o;7038:523::-;7255:17;7275:12;:10;:12::i;:::-;7255:32;;7323:1;:16;;;;;;;;;;;;7301:39;;:10;:39;;;7297:89;;7361:25;;;;;;;;;;;;;;7297:89;7397:15;7426:8;7415:31;;;;;;;;;;;;:::i;:::-;7397:49;;7463:6;7456:23;;;7480:7;7489:8;7456:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7513:41;7537:6;7545:8;7513:41;;;;;;;:::i;:::-;;;;;;;;7038:523;;;;;;;;:::o;8882:312::-;680:27:7;710:19;:17;:19::i;:::-;680:49;;615:1;743;:8;;;:20;739:50;;;772:17;;;;;;;;;;;;;;739:50;615:1;799;:8;;:19;;;;9020:35:6::1;:33;:35::i;:::-;9065:50;9100:4;9107:7;9072:6;9065:26;;;;:50;;;;;:::i;:::-;9125:62;9165:4;9172:5;9179:7;9132:6;9125:31;;;;:62;;;;;;:::i;:::-;572:1:7::0;839;:8;;:23;;;;8882:312:6;;;;:::o;1898:150:11:-;1974:16;:14;:16::i;:::-;:30;;;;;;;;;;;;1960:44;;:10;:44;;;1952:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;1898:150::o;10031:226:6:-;10075:17;10104;1966:41;10104:29;;10232:9;10222:19;;10208:43;;:::o;937:275:7:-;1012:30;1058:16;1077:9;1058:28;;1188:8;1175:21;;1161:45;;:::o;974:241:2:-;1112:96;1132:5;1162:27;;;1191:4;1197:2;1201:5;1139:68;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1112:19;:96::i;:::-;974:241;;;;:::o;1475:603::-;1839:1;1830:5;:10;1829:62;;;;1889:1;1846:5;:15;;;1870:4;1877:7;1846:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:44;1829:62;1808:163;;;;;;;;;;;;:::i;:::-;;;;;;;;;1981:90;2001:5;2031:22;;;2055:7;2064:5;2008:62;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:19;:90::i;:::-;1475:603;;;:::o;1191:231:11:-;1240:25;1273:16;203:45;1273:43;;1404:8;1393:19;;1383:35;;:::o;3747:706:2:-;4166:23;4192:69;4220:4;4192:69;;;;;;;;;;;;;;;;;4200:5;4192:27;;;;:69;;;;;:::i;:::-;4166:95;;4295:1;4275:10;:17;:21;4271:176;;;4370:10;4359:30;;;;;;;;;;;;:::i;:::-;4351:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4271:176;3747:706;;;:::o;3861:223:3:-;3994:12;4025:52;4047:6;4055:4;4061:1;4064:12;4025:21;:52::i;:::-;4018:59;;3861:223;;;;;:::o;4948:499::-;5113:12;5170:5;5145:21;:30;;5137:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;5236:18;5247:6;5236:10;:18::i;:::-;5228:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;5300:12;5314:23;5341:6;:11;;5360:5;5367:4;5341:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5299:73;;;;5389:51;5406:7;5415:10;5427:12;5389:16;:51::i;:::-;5382:58;;;;4948:499;;;;;;:::o;1175:320::-;1235:4;1487:1;1465:7;:19;;;:23;1458:30;;1175:320;;;:::o;7561:742::-;7707:12;7735:7;7731:566;;;7765:10;7758:17;;;;7731:566;7896:1;7876:10;:17;:21;7872:415;;;8120:10;8114:17;8180:15;8167:10;8163:2;8159:19;8152:44;8069:145;8259:12;8252:20;;;;;;;;;;;:::i;:::-;;;;;;;;7561:742;;;;;;:::o;7:343:13:-;84:5;109:65;125:48;166:6;125:48;:::i;:::-;109:65;:::i;:::-;100:74;;197:6;190:5;183:21;235:4;228:5;224:16;273:3;264:6;259:3;255:16;252:25;249:2;;;290:1;287;280:12;249:2;303:41;337:6;332:3;327;303:41;:::i;:::-;90:260;;;;;;:::o;356:139::-;402:5;440:6;427:20;418:29;;456:33;483:5;456:33;:::i;:::-;408:87;;;;:::o;501:155::-;555:5;593:6;580:20;571:29;;609:41;644:5;609:41;:::i;:::-;561:95;;;;:::o;662:159::-;727:5;758:6;752:13;743:22;;774:41;809:5;774:41;:::i;:::-;733:88;;;;:::o;827:137::-;881:5;912:6;906:13;897:22;;928:30;952:5;928:30;:::i;:::-;887:77;;;;:::o;983:271::-;1038:5;1087:3;1080:4;1072:6;1068:17;1064:27;1054:2;;1105:1;1102;1095:12;1054:2;1145:6;1132:20;1170:78;1244:3;1236:6;1229:4;1221:6;1217:17;1170:78;:::i;:::-;1161:87;;1044:210;;;;;:::o;1301:1527::-;1379:5;1423:6;1411:9;1406:3;1402:19;1398:32;1395:2;;;1443:1;1440;1433:12;1395:2;1465:23;1481:6;1465:23;:::i;:::-;1456:32;;1546:1;1586:49;1631:3;1622:6;1611:9;1607:22;1586:49;:::i;:::-;1579:4;1572:5;1568:16;1561:75;1498:149;1711:2;1752:49;1797:3;1788:6;1777:9;1773:22;1752:49;:::i;:::-;1745:4;1738:5;1734:16;1727:75;1657:156;1875:2;1916:49;1961:3;1952:6;1941:9;1937:22;1916:49;:::i;:::-;1909:4;1902:5;1898:16;1891:75;1823:154;2042:2;2083:48;2127:3;2118:6;2107:9;2103:22;2083:48;:::i;:::-;2076:4;2069:5;2065:16;2058:74;1987:156;2207:3;2249:48;2293:3;2284:6;2273:9;2269:22;2249:48;:::i;:::-;2242:4;2235:5;2231:16;2224:74;2153:156;2373:3;2415:48;2459:3;2450:6;2439:9;2435:22;2415:48;:::i;:::-;2408:4;2401:5;2397:16;2390:74;2319:156;2532:3;2574:57;2627:3;2618:6;2607:9;2603:22;2574:57;:::i;:::-;2567:4;2560:5;2556:16;2549:83;2485:158;2718:3;2760:49;2805:3;2796:6;2785:9;2781:22;2760:49;:::i;:::-;2753:4;2746:5;2742:16;2735:75;2653:168;1385:1443;;;;:::o;2834:137::-;2879:5;2917:6;2904:20;2895:29;;2933:32;2959:5;2933:32;:::i;:::-;2885:86;;;;:::o;2977:139::-;3023:5;3061:6;3048:20;3039:29;;3077:33;3104:5;3077:33;:::i;:::-;3029:87;;;;:::o;3122:143::-;3179:5;3210:6;3204:13;3195:22;;3226:33;3253:5;3226:33;:::i;:::-;3185:80;;;;:::o;3271:262::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:2;;;3395:1;3392;3385:12;3347:2;3438:1;3463:53;3508:7;3499:6;3488:9;3484:22;3463:53;:::i;:::-;3453:63;;3409:117;3337:196;;;;:::o;3539:300::-;3617:6;3666:2;3654:9;3645:7;3641:23;3637:32;3634:2;;;3682:1;3679;3672:12;3634:2;3725:1;3750:72;3814:7;3805:6;3794:9;3790:22;3750:72;:::i;:::-;3740:82;;3696:136;3624:215;;;;:::o;3845:552::-;3922:6;3930;3938;3987:2;3975:9;3966:7;3962:23;3958:32;3955:2;;;4003:1;4000;3993:12;3955:2;4046:1;4071:53;4116:7;4107:6;4096:9;4092:22;4071:53;:::i;:::-;4061:63;;4017:117;4173:2;4199:53;4244:7;4235:6;4224:9;4220:22;4199:53;:::i;:::-;4189:63;;4144:118;4301:2;4327:53;4372:7;4363:6;4352:9;4348:22;4327:53;:::i;:::-;4317:63;;4272:118;3945:452;;;;;:::o;4403:405::-;4470:6;4478;4527:2;4515:9;4506:7;4502:23;4498:32;4495:2;;;4543:1;4540;4533:12;4495:2;4586:1;4611:53;4656:7;4647:6;4636:9;4632:22;4611:53;:::i;:::-;4601:63;;4557:117;4713:2;4739:52;4783:7;4774:6;4763:9;4759:22;4739:52;:::i;:::-;4729:62;;4684:117;4485:323;;;;;:::o;4814:278::-;4881:6;4930:2;4918:9;4909:7;4905:23;4901:32;4898:2;;;4946:1;4943;4936:12;4898:2;4989:1;5014:61;5067:7;5058:6;5047:9;5043:22;5014:61;:::i;:::-;5004:71;;4960:125;4888:204;;;;:::o;5098:321::-;5186:6;5235:3;5223:9;5214:7;5210:23;5206:33;5203:2;;;5252:1;5249;5242:12;5203:2;5295:1;5320:82;5394:7;5385:6;5374:9;5370:22;5320:82;:::i;:::-;5310:92;;5266:146;5193:226;;;;:::o;5425:550::-;5501:6;5509;5517;5566:2;5554:9;5545:7;5541:23;5537:32;5534:2;;;5582:1;5579;5572:12;5534:2;5625:1;5650:52;5694:7;5685:6;5674:9;5670:22;5650:52;:::i;:::-;5640:62;;5596:116;5751:2;5777:53;5822:7;5813:6;5802:9;5798:22;5777:53;:::i;:::-;5767:63;;5722:118;5879:2;5905:53;5950:7;5941:6;5930:9;5926:22;5905:53;:::i;:::-;5895:63;;5850:118;5524:451;;;;;:::o;5981:550::-;6057:6;6065;6073;6122:2;6110:9;6101:7;6097:23;6093:32;6090:2;;;6138:1;6135;6128:12;6090:2;6181:1;6206:52;6250:7;6241:6;6230:9;6226:22;6206:52;:::i;:::-;6196:62;;6152:116;6307:2;6333:53;6378:7;6369:6;6358:9;6354:22;6333:53;:::i;:::-;6323:63;;6278:118;6435:2;6461:53;6506:7;6497:6;6486:9;6482:22;6461:53;:::i;:::-;6451:63;;6406:118;6080:451;;;;;:::o;6537:1210::-;6658:6;6666;6674;6682;6690;6698;6747:3;6735:9;6726:7;6722:23;6718:33;6715:2;;;6764:1;6761;6754:12;6715:2;6807:1;6832:52;6876:7;6867:6;6856:9;6852:22;6832:52;:::i;:::-;6822:62;;6778:116;6961:2;6950:9;6946:18;6933:32;6992:18;6984:6;6981:30;6978:2;;;7024:1;7021;7014:12;6978:2;7052:62;7106:7;7097:6;7086:9;7082:22;7052:62;:::i;:::-;7042:72;;6904:220;7163:2;7189:53;7234:7;7225:6;7214:9;7210:22;7189:53;:::i;:::-;7179:63;;7134:118;7291:2;7317:53;7362:7;7353:6;7342:9;7338:22;7317:53;:::i;:::-;7307:63;;7262:118;7419:3;7446:53;7491:7;7482:6;7471:9;7467:22;7446:53;:::i;:::-;7436:63;;7390:119;7576:3;7565:9;7561:19;7548:33;7608:18;7600:6;7597:30;7594:2;;;7640:1;7637;7630:12;7594:2;7668:62;7722:7;7713:6;7702:9;7698:22;7668:62;:::i;:::-;7658:72;;7519:221;6705:1042;;;;;;;;:::o;7753:262::-;7812:6;7861:2;7849:9;7840:7;7836:23;7832:32;7829:2;;;7877:1;7874;7867:12;7829:2;7920:1;7945:53;7990:7;7981:6;7970:9;7966:22;7945:53;:::i;:::-;7935:63;;7891:117;7819:196;;;;:::o;8021:284::-;8091:6;8140:2;8128:9;8119:7;8115:23;8111:32;8108:2;;;8156:1;8153;8146:12;8108:2;8199:1;8224:64;8280:7;8271:6;8260:9;8256:22;8224:64;:::i;:::-;8214:74;;8170:128;8098:207;;;;:::o;8311:440::-;8390:6;8398;8447:2;8435:9;8426:7;8422:23;8418:32;8415:2;;;8463:1;8460;8453:12;8415:2;8506:1;8531:64;8587:7;8578:6;8567:9;8563:22;8531:64;:::i;:::-;8521:74;;8477:128;8644:2;8670:64;8726:7;8717:6;8706:9;8702:22;8670:64;:::i;:::-;8660:74;;8615:129;8405:346;;;;;:::o;8757:147::-;8852:45;8891:5;8852:45;:::i;:::-;8847:3;8840:58;8830:74;;:::o;8910:142::-;9013:32;9039:5;9013:32;:::i;:::-;9008:3;9001:45;8991:61;;:::o;9058:118::-;9145:24;9163:5;9145:24;:::i;:::-;9140:3;9133:37;9123:53;;:::o;9182:157::-;9287:45;9307:24;9325:5;9307:24;:::i;:::-;9287:45;:::i;:::-;9282:3;9275:58;9265:74;;:::o;9345:109::-;9426:21;9441:5;9426:21;:::i;:::-;9421:3;9414:34;9404:50;;:::o;9460:340::-;9536:3;9564:38;9596:5;9564:38;:::i;:::-;9618:60;9671:6;9666:3;9618:60;:::i;:::-;9611:67;;9687:52;9732:6;9727:3;9720:4;9713:5;9709:16;9687:52;:::i;:::-;9764:29;9786:6;9764:29;:::i;:::-;9759:3;9755:39;9748:46;;9540:260;;;;;:::o;9806:360::-;9892:3;9920:38;9952:5;9920:38;:::i;:::-;9974:70;10037:6;10032:3;9974:70;:::i;:::-;9967:77;;10053:52;10098:6;10093:3;10086:4;10079:5;10075:16;10053:52;:::i;:::-;10130:29;10152:6;10130:29;:::i;:::-;10125:3;10121:39;10114:46;;9896:270;;;;;:::o;10172:373::-;10276:3;10304:38;10336:5;10304:38;:::i;:::-;10358:88;10439:6;10434:3;10358:88;:::i;:::-;10351:95;;10455:52;10500:6;10495:3;10488:4;10481:5;10477:16;10455:52;:::i;:::-;10532:6;10527:3;10523:16;10516:23;;10280:265;;;;;:::o;10551:143::-;10644:43;10681:5;10644:43;:::i;:::-;10639:3;10632:56;10622:72;;:::o;10700:364::-;10788:3;10816:39;10849:5;10816:39;:::i;:::-;10871:71;10935:6;10930:3;10871:71;:::i;:::-;10864:78;;10951:52;10996:6;10991:3;10984:4;10977:5;10973:16;10951:52;:::i;:::-;11028:29;11050:6;11028:29;:::i;:::-;11023:3;11019:39;11012:46;;10792:272;;;;;:::o;11070:366::-;11212:3;11233:67;11297:2;11292:3;11233:67;:::i;:::-;11226:74;;11309:93;11398:3;11309:93;:::i;:::-;11427:2;11422:3;11418:12;11411:19;;11216:220;;;:::o;11442:363::-;11583:3;11604:65;11667:1;11662:3;11604:65;:::i;:::-;11597:72;;11678:93;11767:3;11678:93;:::i;:::-;11796:2;11791:3;11787:12;11780:19;;11587:218;;;:::o;11811:366::-;11953:3;11974:67;12038:2;12033:3;11974:67;:::i;:::-;11967:74;;12050:93;12139:3;12050:93;:::i;:::-;12168:2;12163:3;12159:12;12152:19;;11957:220;;;:::o;12183:365::-;12325:3;12346:66;12410:1;12405:3;12346:66;:::i;:::-;12339:73;;12421:93;12510:3;12421:93;:::i;:::-;12539:2;12534:3;12530:12;12523:19;;12329:219;;;:::o;12554:366::-;12696:3;12717:67;12781:2;12776:3;12717:67;:::i;:::-;12710:74;;12793:93;12882:3;12793:93;:::i;:::-;12911:2;12906:3;12902:12;12895:19;;12700:220;;;:::o;12926:366::-;13068:3;13089:67;13153:2;13148:3;13089:67;:::i;:::-;13082:74;;13165:93;13254:3;13165:93;:::i;:::-;13283:2;13278:3;13274:12;13267:19;;13072:220;;;:::o;13298:366::-;13440:3;13461:67;13525:2;13520:3;13461:67;:::i;:::-;13454:74;;13537:93;13626:3;13537:93;:::i;:::-;13655:2;13650:3;13646:12;13639:19;;13444:220;;;:::o;13742:807::-;13861:3;13897:4;13892:3;13888:14;13993:4;13986:5;13982:16;13976:23;14012:63;14069:4;14064:3;14060:14;14046:12;14012:63;:::i;:::-;13912:173;14178:4;14171:5;14167:16;14161:23;14197:63;14254:4;14249:3;14245:14;14231:12;14197:63;:::i;:::-;14095:175;14361:4;14354:5;14350:16;14344:23;14414:3;14408:4;14404:14;14397:4;14392:3;14388:14;14381:38;14440:71;14506:4;14492:12;14440:71;:::i;:::-;14432:79;;14280:242;14539:4;14532:11;;13866:683;;;;;:::o;14555:115::-;14640:23;14657:5;14640:23;:::i;:::-;14635:3;14628:36;14618:52;;:::o;14676:129::-;14762:36;14792:5;14762:36;:::i;:::-;14757:3;14750:49;14740:65;;:::o;14811:108::-;14888:24;14906:5;14888:24;:::i;:::-;14883:3;14876:37;14866:53;;:::o;14925:118::-;15012:24;15030:5;15012:24;:::i;:::-;15007:3;15000:37;14990:53;;:::o;15049:256::-;15161:3;15176:75;15247:3;15238:6;15176:75;:::i;:::-;15276:2;15271:3;15267:12;15260:19;;15296:3;15289:10;;15165:140;;;;:::o;15311:271::-;15441:3;15463:93;15552:3;15543:6;15463:93;:::i;:::-;15456:100;;15573:3;15566:10;;15445:137;;;;:::o;15588:222::-;15681:4;15719:2;15708:9;15704:18;15696:26;;15732:71;15800:1;15789:9;15785:17;15776:6;15732:71;:::i;:::-;15686:124;;;;:::o;15816:254::-;15925:4;15963:2;15952:9;15948:18;15940:26;;15976:87;16060:1;16049:9;16045:17;16036:6;15976:87;:::i;:::-;15930:140;;;;:::o;16076:332::-;16197:4;16235:2;16224:9;16220:18;16212:26;;16248:71;16316:1;16305:9;16301:17;16292:6;16248:71;:::i;:::-;16329:72;16397:2;16386:9;16382:18;16373:6;16329:72;:::i;:::-;16202:206;;;;;:::o;16414:442::-;16563:4;16601:2;16590:9;16586:18;16578:26;;16614:71;16682:1;16671:9;16667:17;16658:6;16614:71;:::i;:::-;16695:72;16763:2;16752:9;16748:18;16739:6;16695:72;:::i;:::-;16777;16845:2;16834:9;16830:18;16821:6;16777:72;:::i;:::-;16568:288;;;;;;:::o;16862:328::-;16981:4;17019:2;17008:9;17004:18;16996:26;;17032:71;17100:1;17089:9;17085:17;17076:6;17032:71;:::i;:::-;17113:70;17179:2;17168:9;17164:18;17155:6;17113:70;:::i;:::-;16986:204;;;;;:::o;17196:332::-;17317:4;17355:2;17344:9;17340:18;17332:26;;17368:71;17436:1;17425:9;17421:17;17412:6;17368:71;:::i;:::-;17449:72;17517:2;17506:9;17502:18;17493:6;17449:72;:::i;:::-;17322:206;;;;;:::o;17534:210::-;17621:4;17659:2;17648:9;17644:18;17636:26;;17672:65;17734:1;17723:9;17719:17;17710:6;17672:65;:::i;:::-;17626:118;;;;:::o;17750:313::-;17863:4;17901:2;17890:9;17886:18;17878:26;;17950:9;17944:4;17940:20;17936:1;17925:9;17921:17;17914:47;17978:78;18051:4;18042:6;17978:78;:::i;:::-;17970:86;;17868:195;;;;:::o;18069:419::-;18235:4;18273:2;18262:9;18258:18;18250:26;;18322:9;18316:4;18312:20;18308:1;18297:9;18293:17;18286:47;18350:131;18476:4;18350:131;:::i;:::-;18342:139;;18240:248;;;:::o;18494:419::-;18660:4;18698:2;18687:9;18683:18;18675:26;;18747:9;18741:4;18737:20;18733:1;18722:9;18718:17;18711:47;18775:131;18901:4;18775:131;:::i;:::-;18767:139;;18665:248;;;:::o;18919:1095::-;19259:4;19297:3;19286:9;19282:19;19274:27;;19347:9;19341:4;19337:20;19333:1;19322:9;19318:17;19311:47;19375:131;19501:4;19375:131;:::i;:::-;19367:139;;19516:72;19584:2;19573:9;19569:18;19560:6;19516:72;:::i;:::-;19598;19666:2;19655:9;19651:18;19642:6;19598:72;:::i;:::-;19680;19748:2;19737:9;19733:18;19724:6;19680:72;:::i;:::-;19762:81;19838:3;19827:9;19823:19;19814:6;19762:81;:::i;:::-;19853:73;19921:3;19910:9;19906:19;19897:6;19853:73;:::i;:::-;19936:71;20002:3;19991:9;19987:19;19978:6;19936:71;:::i;:::-;19264:750;;;;;;;;;:::o;20020:419::-;20186:4;20224:2;20213:9;20209:18;20201:26;;20273:9;20267:4;20263:20;20259:1;20248:9;20244:17;20237:47;20301:131;20427:4;20301:131;:::i;:::-;20293:139;;20191:248;;;:::o;20445:419::-;20611:4;20649:2;20638:9;20634:18;20626:26;;20698:9;20692:4;20688:20;20684:1;20673:9;20669:17;20662:47;20726:131;20852:4;20726:131;:::i;:::-;20718:139;;20616:248;;;:::o;20870:419::-;21036:4;21074:2;21063:9;21059:18;21051:26;;21123:9;21117:4;21113:20;21109:1;21098:9;21094:17;21087:47;21151:131;21277:4;21151:131;:::i;:::-;21143:139;;21041:248;;;:::o;21295:438::-;21442:4;21480:2;21469:9;21465:18;21457:26;;21493:69;21559:1;21548:9;21544:17;21535:6;21493:69;:::i;:::-;21572:72;21640:2;21629:9;21625:18;21616:6;21572:72;:::i;:::-;21654;21722:2;21711:9;21707:18;21698:6;21654:72;:::i;:::-;21447:286;;;;;;:::o;21739:1105::-;22088:4;22126:3;22115:9;22111:19;22103:27;;22140:69;22206:1;22195:9;22191:17;22182:6;22140:69;:::i;:::-;22219:78;22293:2;22282:9;22278:18;22269:6;22219:78;:::i;:::-;22344:9;22338:4;22334:20;22329:2;22318:9;22314:18;22307:48;22372:76;22443:4;22434:6;22372:76;:::i;:::-;22364:84;;22495:9;22489:4;22485:20;22480:2;22469:9;22465:18;22458:48;22523:130;22648:4;22523:130;:::i;:::-;22515:138;;22701:9;22695:4;22691:20;22685:3;22674:9;22670:19;22663:49;22729:108;22832:4;22823:6;22729:108;:::i;:::-;22721:116;;22093:751;;;;;;;:::o;22850:1457::-;23265:4;23303:3;23292:9;23288:19;23280:27;;23317:69;23383:1;23372:9;23368:17;23359:6;23317:69;:::i;:::-;23396:71;23463:2;23452:9;23448:18;23439:6;23396:71;:::i;:::-;23477;23544:2;23533:9;23529:18;23520:6;23477:71;:::i;:::-;23558:88;23642:2;23631:9;23627:18;23618:6;23558:88;:::i;:::-;23656:73;23724:3;23713:9;23709:19;23700:6;23656:73;:::i;:::-;23739;23807:3;23796:9;23792:19;23783:6;23739:73;:::i;:::-;23860:9;23854:4;23850:20;23844:3;23833:9;23829:19;23822:49;23888:108;23991:4;23982:6;23888:108;:::i;:::-;23880:116;;24044:9;24038:4;24034:20;24028:3;24017:9;24013:19;24006:49;24072:76;24143:4;24134:6;24072:76;:::i;:::-;24064:84;;24196:9;24190:4;24186:20;24180:3;24169:9;24165:19;24158:49;24224:76;24295:4;24286:6;24224:76;:::i;:::-;24216:84;;23270:1037;;;;;;;;;;;;:::o;24313:222::-;24406:4;24444:2;24433:9;24429:18;24421:26;;24457:71;24525:1;24514:9;24510:17;24501:6;24457:71;:::i;:::-;24411:124;;;;:::o;24541:129::-;24575:6;24602:20;;:::i;:::-;24592:30;;24631:33;24659:4;24651:6;24631:33;:::i;:::-;24582:88;;;:::o;24676:75::-;24709:6;24742:2;24736:9;24726:19;;24716:35;:::o;24757:307::-;24818:4;24908:18;24900:6;24897:30;24894:2;;;24930:18;;:::i;:::-;24894:2;24968:29;24990:6;24968:29;:::i;:::-;24960:37;;25052:4;25046;25042:15;25034:23;;24823:241;;;:::o;25070:98::-;25121:6;25155:5;25149:12;25139:22;;25128:40;;;:::o;25174:99::-;25226:6;25260:5;25254:12;25244:22;;25233:40;;;:::o;25279:158::-;25352:11;25386:6;25381:3;25374:19;25426:4;25421:3;25417:14;25402:29;;25364:73;;;;:::o;25443:168::-;25526:11;25560:6;25555:3;25548:19;25600:4;25595:3;25591:14;25576:29;;25538:73;;;;:::o;25617:147::-;25718:11;25755:3;25740:18;;25730:34;;;;:::o;25770:169::-;25854:11;25888:6;25883:3;25876:19;25928:4;25923:3;25919:14;25904:29;;25866:73;;;;:::o;25945:185::-;25985:1;26002:20;26020:1;26002:20;:::i;:::-;25997:25;;26036:20;26054:1;26036:20;:::i;:::-;26031:25;;26075:1;26065:2;;26080:18;;:::i;:::-;26065:2;26122:1;26119;26115:9;26110:14;;25987:143;;;;:::o;26136:348::-;26176:7;26199:20;26217:1;26199:20;:::i;:::-;26194:25;;26233:20;26251:1;26233:20;:::i;:::-;26228:25;;26421:1;26353:66;26349:74;26346:1;26343:81;26338:1;26331:9;26324:17;26320:105;26317:2;;;26428:18;;:::i;:::-;26317:2;26476:1;26473;26469:9;26458:20;;26184:300;;;;:::o;26490:191::-;26530:4;26550:20;26568:1;26550:20;:::i;:::-;26545:25;;26584:20;26602:1;26584:20;:::i;:::-;26579:25;;26623:1;26620;26617:8;26614:2;;;26628:18;;:::i;:::-;26614:2;26673:1;26670;26666:9;26658:17;;26535:146;;;;:::o;26687:96::-;26724:7;26753:24;26771:5;26753:24;:::i;:::-;26742:35;;26732:51;;;:::o;26789:104::-;26834:7;26863:24;26881:5;26863:24;:::i;:::-;26852:35;;26842:51;;;:::o;26899:90::-;26933:7;26976:5;26969:13;26962:21;26951:32;;26941:48;;;:::o;26995:89::-;27031:7;27071:6;27064:5;27060:18;27049:29;;27039:45;;;:::o;27090:126::-;27127:7;27167:42;27160:5;27156:54;27145:65;;27135:81;;;:::o;27222:77::-;27259:7;27288:5;27277:16;;27267:32;;;:::o;27305:86::-;27340:7;27380:4;27373:5;27369:16;27358:27;;27348:43;;;:::o;27397:134::-;27455:9;27488:37;27519:5;27488:37;:::i;:::-;27475:50;;27465:66;;;:::o;27537:117::-;27593:9;27626:22;27642:5;27626:22;:::i;:::-;27613:35;;27603:51;;;:::o;27660:126::-;27710:9;27743:37;27774:5;27743:37;:::i;:::-;27730:50;;27720:66;;;:::o;27792:113::-;27842:9;27875:24;27893:5;27875:24;:::i;:::-;27862:37;;27852:53;;;:::o;27911:111::-;27960:9;27993:23;28010:5;27993:23;:::i;:::-;27980:36;;27970:52;;;:::o;28028:154::-;28112:6;28107:3;28102;28089:30;28174:1;28165:6;28160:3;28156:16;28149:27;28079:103;;;:::o;28188:307::-;28256:1;28266:113;28280:6;28277:1;28274:13;28266:113;;;28365:1;28360:3;28356:11;28350:18;28346:1;28341:3;28337:11;28330:39;28302:2;28299:1;28295:10;28290:15;;28266:113;;;28397:6;28394:1;28391:13;28388:2;;;28477:1;28468:6;28463:3;28459:16;28452:27;28388:2;28237:258;;;;:::o;28501:281::-;28584:27;28606:4;28584:27;:::i;:::-;28576:6;28572:40;28714:6;28702:10;28699:22;28678:18;28666:10;28663:34;28660:62;28657:2;;;28725:18;;:::i;:::-;28657:2;28765:10;28761:2;28754:22;28544:238;;;:::o;28788:100::-;28827:7;28856:26;28876:5;28856:26;:::i;:::-;28845:37;;28835:53;;;:::o;28894:94::-;28933:7;28962:20;28976:5;28962:20;:::i;:::-;28951:31;;28941:47;;;:::o;28994:180::-;29042:77;29039:1;29032:88;29139:4;29136:1;29129:15;29163:4;29160:1;29153:15;29180:180;29228:77;29225:1;29218:88;29325:4;29322:1;29315:15;29349:4;29346:1;29339:15;29366:180;29414:77;29411:1;29404:88;29511:4;29508:1;29501:15;29535:4;29532:1;29525:15;29552:102;29593:6;29644:2;29640:7;29635:2;29628:5;29624:14;29620:28;29610:38;;29600:54;;;:::o;29660:94::-;29693:8;29741:5;29737:2;29733:14;29712:35;;29702:52;;;:::o;29760:221::-;29900:34;29896:1;29888:6;29884:14;29877:58;29969:4;29964:2;29956:6;29952:15;29945:29;29866:115;:::o;29987:152::-;30127:4;30123:1;30115:6;30111:14;30104:28;30093:46;:::o;30145:225::-;30285:34;30281:1;30273:6;30269:14;30262:58;30354:8;30349:2;30341:6;30337:15;30330:33;30251:119;:::o;30376:158::-;30516:10;30512:1;30504:6;30500:14;30493:34;30482:52;:::o;30540:179::-;30680:31;30676:1;30668:6;30664:14;30657:55;30646:73;:::o;30725:229::-;30865:34;30861:1;30853:6;30849:14;30842:58;30934:12;30929:2;30921:6;30917:15;30910:37;30831:123;:::o;30960:241::-;31100:34;31096:1;31088:6;31084:14;31077:58;31169:24;31164:2;31156:6;31152:15;31145:49;31066:135;:::o;31207:122::-;31280:24;31298:5;31280:24;:::i;:::-;31273:5;31270:35;31260:2;;31319:1;31316;31309:12;31260:2;31250:79;:::o;31335:138::-;31416:32;31442:5;31416:32;:::i;:::-;31409:5;31406:43;31396:2;;31463:1;31460;31453:12;31396:2;31386:87;:::o;31479:116::-;31549:21;31564:5;31549:21;:::i;:::-;31542:5;31539:32;31529:2;;31585:1;31582;31575:12;31529:2;31519:76;:::o;31601:120::-;31673:23;31690:5;31673:23;:::i;:::-;31666:5;31663:34;31653:2;;31711:1;31708;31701:12;31653:2;31643:78;:::o;31727:122::-;31800:24;31818:5;31800:24;:::i;:::-;31793:5;31790:35;31780:2;;31839:1;31836;31829:12;31780:2;31770:79;:::o"
						},
						"gasEstimates": {
							"creation": {
								"codeDepositCost": "1994400",
								"executionCost": "2113",
								"totalCost": "1996513"
							},
							"external": {
								"sgAddPool(uint16,address,uint256)": "infinite",
								"sgBridgeTokens((uint256,address,address,uint16,uint16,uint16,address,address))": "infinite",
								"sgCalculateFees(uint16,address,address)": "infinite",
								"sgCheckPoolId(uint16,address,uint256)": "2131",
								"sgInitialize(address,uint16)": "infinite",
								"sgMinAmountOut(uint256)": "infinite",
								"sgReceive(uint16,bytes,uint256,address,uint256,bytes)": "infinite",
								"sgUpdateRouter(address)": "infinite",
								"sgUpdateSlippageTolerance(uint256)": "infinite",
								"sgWithdraw(address,address,uint256)": "infinite"
							},
							"internal": {
								"getStorage()": "36"
							}
						},
						"legacyAssembly": {
							".code": [
								{
									"begin": 910,
									"end": 10259,
									"name": "PUSH",
									"source": 6,
									"value": "80"
								},
								{
									"begin": 910,
									"end": 10259,
									"name": "PUSH",
									"source": 6,
									"value": "40"
								},
								{
									"begin": 910,
									"end": 10259,
									"name": "MSTORE",
									"source": 6
								},
								{
									"begin": 910,
									"end": 10259,
									"name": "CALLVALUE",
									"source": 6
								},
								{
									"begin": 910,
									"end": 10259,
									"name": "DUP1",
									"source": 6
								},
								{
									"begin": 910,
									"end": 10259,
									"name": "ISZERO",
									"source": 6
								},
								{
									"begin": 910,
									"end": 10259,
									"name": "PUSH [tag]",
									"source": 6,
									"value": "1"
								},
								{
									"begin": 910,
									"end": 10259,
									"name": "JUMPI",
									"source": 6
								},
								{
									"begin": 910,
									"end": 10259,
									"name": "PUSH",
									"source": 6,
									"value": "0"
								},
								{
									"begin": 910,
									"end": 10259,
									"name": "DUP1",
									"source": 6
								},
								{
									"begin": 910,
									"end": 10259,
									"name": "REVERT",
									"source": 6
								},
								{
									"begin": 910,
									"end": 10259,
									"name": "tag",
									"source": 6,
									"value": "1"
								},
								{
									"begin": 910,
									"end": 10259,
									"name": "JUMPDEST",
									"source": 6
								},
								{
									"begin": 910,
									"end": 10259,
									"name": "POP",
									"source": 6
								},
								{
									"begin": 910,
									"end": 10259,
									"name": "PUSH #[$]",
									"source": 6,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 910,
									"end": 10259,
									"name": "DUP1",
									"source": 6
								},
								{
									"begin": 910,
									"end": 10259,
									"name": "PUSH [$]",
									"source": 6,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 910,
									"end": 10259,
									"name": "PUSH",
									"source": 6,
									"value": "0"
								},
								{
									"begin": 910,
									"end": 10259,
									"name": "CODECOPY",
									"source": 6
								},
								{
									"begin": 910,
									"end": 10259,
									"name": "PUSH",
									"source": 6,
									"value": "0"
								},
								{
									"begin": 910,
									"end": 10259,
									"name": "RETURN",
									"source": 6
								}
							],
							".data": {
								"0": {
									".auxdata": "a26469706673582212205925f021cf49e0781dce4a9176cd460ade79205f37ae12e8df85aecee8f9a52a64736f6c63430008040033",
									".code": [
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH",
											"source": 6,
											"value": "80"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH",
											"source": 6,
											"value": "4"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "CALLDATASIZE",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "LT",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "1"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "CALLDATALOAD",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH",
											"source": 6,
											"value": "E0"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "SHR",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH",
											"source": 6,
											"value": "618C3F29"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "GT",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "13"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH",
											"source": 6,
											"value": "618C3F29"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "EQ",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "8"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH",
											"source": 6,
											"value": "6ACF5E3F"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "EQ",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "9"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH",
											"source": 6,
											"value": "90F12364"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "EQ",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "10"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH",
											"source": 6,
											"value": "AB8236F3"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "EQ",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "11"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH",
											"source": 6,
											"value": "C722A336"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "EQ",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "12"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "2"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "JUMP",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "tag",
											"source": 6,
											"value": "13"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH",
											"source": 6,
											"value": "217AABB7"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "EQ",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "3"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH",
											"source": 6,
											"value": "2AAD46E3"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "EQ",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "4"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH",
											"source": 6,
											"value": "42D910C6"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "EQ",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "5"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH",
											"source": 6,
											"value": "498EE469"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "EQ",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "6"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH",
											"source": 6,
											"value": "4BE85C35"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "EQ",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "7"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "2"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "JUMP",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "tag",
											"source": 6,
											"value": "1"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "CALLDATASIZE",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "2"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "STOP",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "tag",
											"source": 6,
											"value": "2"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 910,
											"end": 10259,
											"name": "REVERT",
											"source": 6
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "tag",
											"source": 6,
											"value": "3"
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "CALLVALUE",
											"source": 6
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "ISZERO",
											"source": 6
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "16"
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "REVERT",
											"source": 6
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "tag",
											"source": 6,
											"value": "16"
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "17"
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "PUSH",
											"source": 6,
											"value": "4"
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "CALLDATASIZE",
											"source": 6
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "18"
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "19"
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "tag",
											"source": 6,
											"value": "18"
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "20"
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "tag",
											"source": 6,
											"value": "17"
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "STOP",
											"source": 6
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "tag",
											"source": 6,
											"value": "4"
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "CALLVALUE",
											"source": 6
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "ISZERO",
											"source": 6
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "21"
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "REVERT",
											"source": 6
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "tag",
											"source": 6,
											"value": "21"
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "22"
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "PUSH",
											"source": 6,
											"value": "4"
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "CALLDATASIZE",
											"source": 6
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "23"
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "24"
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "tag",
											"source": 6,
											"value": "23"
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "25"
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "tag",
											"source": 6,
											"value": "22"
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "STOP",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "tag",
											"source": 6,
											"value": "5"
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "CALLVALUE",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "ISZERO",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "26"
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "REVERT",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "tag",
											"source": 6,
											"value": "26"
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "27"
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "PUSH",
											"source": 6,
											"value": "4"
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "CALLDATASIZE",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "28"
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "29"
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "tag",
											"source": 6,
											"value": "28"
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "30"
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "tag",
											"source": 6,
											"value": "27"
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "31"
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "32"
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "tag",
											"source": 6,
											"value": "31"
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "RETURN",
											"source": 6
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "tag",
											"source": 6,
											"value": "6"
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "CALLVALUE",
											"source": 6
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "ISZERO",
											"source": 6
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "33"
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "REVERT",
											"source": 6
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "tag",
											"source": 6,
											"value": "33"
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "34"
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "PUSH",
											"source": 6,
											"value": "4"
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "CALLDATASIZE",
											"source": 6
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "35"
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "36"
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "tag",
											"source": 6,
											"value": "35"
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "37"
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "tag",
											"source": 6,
											"value": "34"
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "STOP",
											"source": 6
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "tag",
											"source": 6,
											"value": "7"
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "CALLVALUE",
											"source": 6
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "ISZERO",
											"source": 6
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "38"
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "REVERT",
											"source": 6
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "tag",
											"source": 6,
											"value": "38"
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "39"
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "PUSH",
											"source": 6,
											"value": "4"
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "CALLDATASIZE",
											"source": 6
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "41"
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "tag",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "42"
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "tag",
											"source": 6,
											"value": "39"
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "STOP",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "tag",
											"source": 6,
											"value": "8"
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "CALLVALUE",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "ISZERO",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "43"
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "REVERT",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "tag",
											"source": 6,
											"value": "43"
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "44"
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "PUSH",
											"source": 6,
											"value": "4"
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "CALLDATASIZE",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "45"
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "19"
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "tag",
											"source": 6,
											"value": "45"
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "46"
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "tag",
											"source": 6,
											"value": "44"
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "47"
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "32"
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "tag",
											"source": 6,
											"value": "47"
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "RETURN",
											"source": 6
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "tag",
											"source": 6,
											"value": "9"
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "48"
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "PUSH",
											"source": 6,
											"value": "4"
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "CALLDATASIZE",
											"source": 6
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "49"
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "50"
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "tag",
											"source": 6,
											"value": "49"
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "51"
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "tag",
											"source": 6,
											"value": "48"
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "52"
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "53"
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "tag",
											"source": 6,
											"value": "52"
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "RETURN",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "tag",
											"source": 6,
											"value": "10"
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "CALLVALUE",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "ISZERO",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "54"
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "REVERT",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "tag",
											"source": 6,
											"value": "54"
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "55"
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "PUSH",
											"source": 6,
											"value": "4"
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "CALLDATASIZE",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "56"
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "24"
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "tag",
											"source": 6,
											"value": "56"
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "57"
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "tag",
											"source": 6,
											"value": "55"
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "58"
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "53"
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "tag",
											"source": 6,
											"value": "58"
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "RETURN",
											"source": 6
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "tag",
											"source": 6,
											"value": "11"
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "CALLVALUE",
											"source": 6
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "ISZERO",
											"source": 6
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "59"
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "REVERT",
											"source": 6
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "tag",
											"source": 6,
											"value": "59"
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "60"
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "PUSH",
											"source": 6,
											"value": "4"
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "CALLDATASIZE",
											"source": 6
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "61"
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "62"
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "tag",
											"source": 6,
											"value": "61"
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "63"
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "tag",
											"source": 6,
											"value": "60"
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "STOP",
											"source": 6
										},
										{
											"begin": 8882,
											"end": 9194,
											"name": "tag",
											"source": 6,
											"value": "12"
										},
										{
											"begin": 8882,
											"end": 9194,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 8882,
											"end": 9194,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "64"
										},
										{
											"begin": 8882,
											"end": 9194,
											"name": "PUSH",
											"source": 6,
											"value": "4"
										},
										{
											"begin": 8882,
											"end": 9194,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 8882,
											"end": 9194,
											"name": "CALLDATASIZE",
											"source": 6
										},
										{
											"begin": 8882,
											"end": 9194,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 8882,
											"end": 9194,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 8882,
											"end": 9194,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 8882,
											"end": 9194,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 8882,
											"end": 9194,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "65"
										},
										{
											"begin": 8882,
											"end": 9194,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 8882,
											"end": 9194,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 8882,
											"end": 9194,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "66"
										},
										{
											"begin": 8882,
											"end": 9194,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 8882,
											"end": 9194,
											"name": "tag",
											"source": 6,
											"value": "65"
										},
										{
											"begin": 8882,
											"end": 9194,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 8882,
											"end": 9194,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "67"
										},
										{
											"begin": 8882,
											"end": 9194,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 8882,
											"end": 9194,
											"name": "tag",
											"source": 6,
											"value": "64"
										},
										{
											"begin": 8882,
											"end": 9194,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 8882,
											"end": 9194,
											"name": "STOP",
											"source": 6
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "tag",
											"source": 6,
											"value": "20"
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 8702,
											"end": 8737,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "69"
										},
										{
											"begin": 8702,
											"end": 8735,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "70"
										},
										{
											"begin": 8702,
											"end": 8737,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 8702,
											"end": 8737,
											"name": "tag",
											"source": 6,
											"value": "69"
										},
										{
											"begin": 8702,
											"end": 8737,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 8747,
											"end": 8764,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 8767,
											"end": 8779,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "71"
										},
										{
											"begin": 8767,
											"end": 8777,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "72"
										},
										{
											"begin": 8767,
											"end": 8779,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 8767,
											"end": 8779,
											"name": "tag",
											"source": 6,
											"value": "71"
										},
										{
											"begin": 8767,
											"end": 8779,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 8747,
											"end": 8779,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 8747,
											"end": 8779,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 8802,
											"end": 8814,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 8789,
											"end": 8790,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 8789,
											"end": 8799,
											"name": "PUSH",
											"source": 6,
											"value": "2"
										},
										{
											"begin": 8789,
											"end": 8799,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 8789,
											"end": 8814,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 8789,
											"end": 8814,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 8789,
											"end": 8814,
											"name": "SSTORE",
											"source": 6
										},
										{
											"begin": 8789,
											"end": 8814,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 8829,
											"end": 8869,
											"name": "PUSH",
											"source": 6,
											"value": "45934903F6B10AFF9D3435B8362D284D95D14CA68E8554F05F04C7856A6003C0"
										},
										{
											"begin": 8856,
											"end": 8868,
											"name": "DUP3",
											"source": 6
										},
										{
											"begin": 8829,
											"end": 8869,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 8829,
											"end": 8869,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 8829,
											"end": 8869,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "73"
										},
										{
											"begin": 8829,
											"end": 8869,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 8829,
											"end": 8869,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 8829,
											"end": 8869,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "32"
										},
										{
											"begin": 8829,
											"end": 8869,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 8829,
											"end": 8869,
											"name": "tag",
											"source": 6,
											"value": "73"
										},
										{
											"begin": 8829,
											"end": 8869,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 8829,
											"end": 8869,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 8829,
											"end": 8869,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 8829,
											"end": 8869,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 8829,
											"end": 8869,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 8829,
											"end": 8869,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 8829,
											"end": 8869,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 8829,
											"end": 8869,
											"name": "LOG1",
											"source": 6
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 8626,
											"end": 8876,
											"name": "JUMP",
											"source": 6,
											"value": "[out]"
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "tag",
											"source": 6,
											"value": "25"
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 9316,
											"end": 9351,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "75"
										},
										{
											"begin": 9316,
											"end": 9349,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "70"
										},
										{
											"begin": 9316,
											"end": 9351,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 9316,
											"end": 9351,
											"name": "tag",
											"source": 6,
											"value": "75"
										},
										{
											"begin": 9316,
											"end": 9351,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 9361,
											"end": 9378,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 9381,
											"end": 9393,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "76"
										},
										{
											"begin": 9381,
											"end": 9391,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "72"
										},
										{
											"begin": 9381,
											"end": 9393,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 9381,
											"end": 9393,
											"name": "tag",
											"source": 6,
											"value": "76"
										},
										{
											"begin": 9381,
											"end": 9393,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 9361,
											"end": 9393,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 9361,
											"end": 9393,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 9433,
											"end": 9440,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 9403,
											"end": 9404,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 9403,
											"end": 9412,
											"name": "PUSH",
											"source": 6,
											"value": "3"
										},
										{
											"begin": 9403,
											"end": 9412,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 9403,
											"end": 9422,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 9413,
											"end": 9421,
											"name": "DUP7",
											"source": 6
										},
										{
											"begin": 9403,
											"end": 9422,
											"name": "PUSH",
											"source": 6,
											"value": "FFFF"
										},
										{
											"begin": 9403,
											"end": 9422,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 9403,
											"end": 9422,
											"name": "PUSH",
											"source": 6,
											"value": "FFFF"
										},
										{
											"begin": 9403,
											"end": 9422,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 9403,
											"end": 9422,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 9403,
											"end": 9422,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 9403,
											"end": 9422,
											"name": "PUSH",
											"source": 6,
											"value": "20"
										},
										{
											"begin": 9403,
											"end": 9422,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 9403,
											"end": 9422,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 9403,
											"end": 9422,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 9403,
											"end": 9422,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 9403,
											"end": 9422,
											"name": "PUSH",
											"source": 6,
											"value": "20"
										},
										{
											"begin": 9403,
											"end": 9422,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 9403,
											"end": 9422,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 9403,
											"end": 9422,
											"name": "KECCAK256",
											"source": 6
										},
										{
											"begin": 9403,
											"end": 9430,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 9423,
											"end": 9429,
											"name": "DUP6",
											"source": 6
										},
										{
											"begin": 9403,
											"end": 9430,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 9403,
											"end": 9430,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 9403,
											"end": 9430,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 9403,
											"end": 9430,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 9403,
											"end": 9430,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 9403,
											"end": 9430,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 9403,
											"end": 9430,
											"name": "PUSH",
											"source": 6,
											"value": "20"
										},
										{
											"begin": 9403,
											"end": 9430,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 9403,
											"end": 9430,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 9403,
											"end": 9430,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 9403,
											"end": 9430,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 9403,
											"end": 9430,
											"name": "PUSH",
											"source": 6,
											"value": "20"
										},
										{
											"begin": 9403,
											"end": 9430,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 9403,
											"end": 9430,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 9403,
											"end": 9430,
											"name": "KECCAK256",
											"source": 6
										},
										{
											"begin": 9403,
											"end": 9440,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 9403,
											"end": 9440,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 9403,
											"end": 9440,
											"name": "SSTORE",
											"source": 6
										},
										{
											"begin": 9403,
											"end": 9440,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 9455,
											"end": 9493,
											"name": "PUSH",
											"source": 6,
											"value": "5A600144B7B71CA7EE988E17E7745E8D46EB24056D4818716BE29FA976393A8E"
										},
										{
											"begin": 9467,
											"end": 9475,
											"name": "DUP5",
											"source": 6
										},
										{
											"begin": 9477,
											"end": 9483,
											"name": "DUP5",
											"source": 6
										},
										{
											"begin": 9485,
											"end": 9492,
											"name": "DUP5",
											"source": 6
										},
										{
											"begin": 9455,
											"end": 9493,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 9455,
											"end": 9493,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 9455,
											"end": 9493,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "77"
										},
										{
											"begin": 9455,
											"end": 9493,
											"name": "SWAP4",
											"source": 6
										},
										{
											"begin": 9455,
											"end": 9493,
											"name": "SWAP3",
											"source": 6
										},
										{
											"begin": 9455,
											"end": 9493,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 9455,
											"end": 9493,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 9455,
											"end": 9493,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "78"
										},
										{
											"begin": 9455,
											"end": 9493,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 9455,
											"end": 9493,
											"name": "tag",
											"source": 6,
											"value": "77"
										},
										{
											"begin": 9455,
											"end": 9493,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 9455,
											"end": 9493,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 9455,
											"end": 9493,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 9455,
											"end": 9493,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 9455,
											"end": 9493,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 9455,
											"end": 9493,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 9455,
											"end": 9493,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 9455,
											"end": 9493,
											"name": "LOG1",
											"source": 6
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 9200,
											"end": 9500,
											"name": "JUMP",
											"source": 6,
											"value": "[out]"
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "tag",
											"source": 6,
											"value": "30"
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 7698,
											"end": 7705,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 7718,
											"end": 7735,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 7757,
											"end": 7764,
											"name": "DUP3",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 7783,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 7741,
											"end": 7783,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 7783,
											"name": "PUSH",
											"source": 6,
											"value": "A512369"
										},
										{
											"begin": 7797,
											"end": 7807,
											"name": "DUP7",
											"source": 6
										},
										{
											"begin": 7845,
											"end": 7846,
											"name": "PUSH",
											"source": 6,
											"value": "1"
										},
										{
											"begin": 7889,
											"end": 7898,
											"name": "DUP8",
											"source": 6
										},
										{
											"begin": 7872,
											"end": 7899,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 7872,
											"end": 7899,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 7872,
											"end": 7899,
											"name": "PUSH",
											"source": 6,
											"value": "20"
										},
										{
											"begin": 7872,
											"end": 7899,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 7872,
											"end": 7899,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "80"
										},
										{
											"begin": 7872,
											"end": 7899,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 7872,
											"end": 7899,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 7872,
											"end": 7899,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "81"
										},
										{
											"begin": 7872,
											"end": 7899,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 7872,
											"end": 7899,
											"name": "tag",
											"source": 6,
											"value": "80"
										},
										{
											"begin": 7872,
											"end": 7899,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 7872,
											"end": 7899,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 7872,
											"end": 7899,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 7872,
											"end": 7899,
											"name": "PUSH",
											"source": 6,
											"value": "20"
										},
										{
											"begin": 7872,
											"end": 7899,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 7872,
											"end": 7899,
											"name": "DUP4",
											"source": 6
										},
										{
											"begin": 7872,
											"end": 7899,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 7872,
											"end": 7899,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 7872,
											"end": 7899,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 7872,
											"end": 7899,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 7872,
											"end": 7899,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 7872,
											"end": 7899,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 7872,
											"end": 7899,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "PUSH",
											"source": 6,
											"value": "60"
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 8019,
											"end": 8025,
											"name": "PUSH",
											"source": 6,
											"value": "30D40"
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "PUSH",
											"source": 6,
											"value": "20"
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 8027,
											"end": 8028,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "PUSH",
											"source": 6,
											"value": "20"
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "PUSH",
											"source": 6,
											"value": "2"
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "PUSH",
											"source": 6,
											"value": "20"
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "PUSH",
											"source": 6,
											"value": "3078000000000000000000000000000000000000000000000000000000000000"
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 7995,
											"end": 8035,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "DUP6",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFF"
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "PUSH",
											"source": 6,
											"value": "E0"
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "SHL",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "PUSH",
											"source": 6,
											"value": "4"
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "82"
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "SWAP5",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "SWAP4",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "SWAP3",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "83"
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "tag",
											"source": 6,
											"value": "82"
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "DUP4",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "DUP7",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "EXTCODESIZE",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "ISZERO",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "ISZERO",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "84"
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "REVERT",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "tag",
											"source": 6,
											"value": "84"
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "GAS",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "STATICCALL",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "ISZERO",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "ISZERO",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "86"
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "RETURNDATASIZE",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "RETURNDATACOPY",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "RETURNDATASIZE",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "REVERT",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "tag",
											"source": 6,
											"value": "86"
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "RETURNDATASIZE",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "PUSH",
											"source": 6,
											"value": "1F"
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "NOT",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "PUSH",
											"source": 6,
											"value": "1F"
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "DUP3",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "DUP3",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "87"
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "88"
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "tag",
											"source": 6,
											"value": "87"
										},
										{
											"begin": 7741,
											"end": 8045,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 7717,
											"end": 8045,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7717,
											"end": 8045,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 7717,
											"end": 8045,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 8062,
											"end": 8071,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 8055,
											"end": 8071,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 8055,
											"end": 8071,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 8055,
											"end": 8071,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "SWAP4",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "SWAP3",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7567,
											"end": 8078,
											"name": "JUMP",
											"source": 6,
											"value": "[out]"
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "tag",
											"source": 6,
											"value": "37"
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 2962,
											"end": 2963,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 2935,
											"end": 2964,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 2935,
											"end": 2964,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 2935,
											"end": 2950,
											"name": "DUP3",
											"source": 6
										},
										{
											"begin": 2935,
											"end": 2964,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 2935,
											"end": 2964,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 2935,
											"end": 2964,
											"name": "EQ",
											"source": 6
										},
										{
											"begin": 2931,
											"end": 2988,
											"name": "ISZERO",
											"source": 6
										},
										{
											"begin": 2931,
											"end": 2988,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "90"
										},
										{
											"begin": 2931,
											"end": 2988,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 2973,
											"end": 2988,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 2973,
											"end": 2988,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 2973,
											"end": 2988,
											"name": "PUSH",
											"source": 6,
											"value": "35BE3AC800000000000000000000000000000000000000000000000000000000"
										},
										{
											"begin": 2973,
											"end": 2988,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 2973,
											"end": 2988,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 2973,
											"end": 2988,
											"name": "PUSH",
											"source": 6,
											"value": "4"
										},
										{
											"begin": 2973,
											"end": 2988,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 2973,
											"end": 2988,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 2973,
											"end": 2988,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 2973,
											"end": 2988,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 2973,
											"end": 2988,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 2973,
											"end": 2988,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 2973,
											"end": 2988,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 2973,
											"end": 2988,
											"name": "REVERT",
											"source": 6
										},
										{
											"begin": 2931,
											"end": 2988,
											"name": "tag",
											"source": 6,
											"value": "90"
										},
										{
											"begin": 2931,
											"end": 2988,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 2998,
											"end": 3033,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "91"
										},
										{
											"begin": 2998,
											"end": 3031,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "70"
										},
										{
											"begin": 2998,
											"end": 3033,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 2998,
											"end": 3033,
											"name": "tag",
											"source": 6,
											"value": "91"
										},
										{
											"begin": 2998,
											"end": 3033,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 3043,
											"end": 3060,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 3063,
											"end": 3075,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "92"
										},
										{
											"begin": 3063,
											"end": 3073,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "72"
										},
										{
											"begin": 3063,
											"end": 3075,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 3063,
											"end": 3075,
											"name": "tag",
											"source": 6,
											"value": "92"
										},
										{
											"begin": 3063,
											"end": 3075,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 3043,
											"end": 3075,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 3043,
											"end": 3075,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 3112,
											"end": 3127,
											"name": "DUP3",
											"source": 6
										},
										{
											"begin": 3085,
											"end": 3086,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 3085,
											"end": 3101,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 3085,
											"end": 3101,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 3085,
											"end": 3101,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 3085,
											"end": 3128,
											"name": "PUSH",
											"source": 6,
											"value": "100"
										},
										{
											"begin": 3085,
											"end": 3128,
											"name": "EXP",
											"source": 6
										},
										{
											"begin": 3085,
											"end": 3128,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 3085,
											"end": 3128,
											"name": "SLOAD",
											"source": 6
										},
										{
											"begin": 3085,
											"end": 3128,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 3085,
											"end": 3128,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 3085,
											"end": 3128,
											"name": "MUL",
											"source": 6
										},
										{
											"begin": 3085,
											"end": 3128,
											"name": "NOT",
											"source": 6
										},
										{
											"begin": 3085,
											"end": 3128,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 3085,
											"end": 3128,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 3085,
											"end": 3128,
											"name": "DUP4",
											"source": 6
										},
										{
											"begin": 3085,
											"end": 3128,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 3085,
											"end": 3128,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 3085,
											"end": 3128,
											"name": "MUL",
											"source": 6
										},
										{
											"begin": 3085,
											"end": 3128,
											"name": "OR",
											"source": 6
										},
										{
											"begin": 3085,
											"end": 3128,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 3085,
											"end": 3128,
											"name": "SSTORE",
											"source": 6
										},
										{
											"begin": 3085,
											"end": 3128,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 3150,
											"end": 3158,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 3138,
											"end": 3139,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 3138,
											"end": 3147,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 3138,
											"end": 3147,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 3138,
											"end": 3147,
											"name": "PUSH",
											"source": 6,
											"value": "14"
										},
										{
											"begin": 3138,
											"end": 3158,
											"name": "PUSH",
											"source": 6,
											"value": "100"
										},
										{
											"begin": 3138,
											"end": 3158,
											"name": "EXP",
											"source": 6
										},
										{
											"begin": 3138,
											"end": 3158,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 3138,
											"end": 3158,
											"name": "SLOAD",
											"source": 6
										},
										{
											"begin": 3138,
											"end": 3158,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 3138,
											"end": 3158,
											"name": "PUSH",
											"source": 6,
											"value": "FFFF"
										},
										{
											"begin": 3138,
											"end": 3158,
											"name": "MUL",
											"source": 6
										},
										{
											"begin": 3138,
											"end": 3158,
											"name": "NOT",
											"source": 6
										},
										{
											"begin": 3138,
											"end": 3158,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 3138,
											"end": 3158,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 3138,
											"end": 3158,
											"name": "DUP4",
											"source": 6
										},
										{
											"begin": 3138,
											"end": 3158,
											"name": "PUSH",
											"source": 6,
											"value": "FFFF"
										},
										{
											"begin": 3138,
											"end": 3158,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 3138,
											"end": 3158,
											"name": "MUL",
											"source": 6
										},
										{
											"begin": 3138,
											"end": 3158,
											"name": "OR",
											"source": 6
										},
										{
											"begin": 3138,
											"end": 3158,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 3138,
											"end": 3158,
											"name": "SSTORE",
											"source": 6
										},
										{
											"begin": 3138,
											"end": 3158,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 3181,
											"end": 3183,
											"name": "PUSH",
											"source": 6,
											"value": "32"
										},
										{
											"begin": 3168,
											"end": 3169,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 3168,
											"end": 3178,
											"name": "PUSH",
											"source": 6,
											"value": "2"
										},
										{
											"begin": 3168,
											"end": 3178,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 3168,
											"end": 3183,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 3168,
											"end": 3183,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 3168,
											"end": 3183,
											"name": "SSTORE",
											"source": 6
										},
										{
											"begin": 3168,
											"end": 3183,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 3212,
											"end": 3271,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "93"
										},
										{
											"begin": 3222,
											"end": 3223,
											"name": "PUSH",
											"source": 6,
											"value": "1"
										},
										{
											"begin": 3225,
											"end": 3267,
											"name": "PUSH",
											"source": 6,
											"value": "A0B86991C6218B36C1D19D4A2E9EB0CE3606EB48"
										},
										{
											"begin": 3269,
											"end": 3270,
											"name": "PUSH",
											"source": 6,
											"value": "1"
										},
										{
											"begin": 3212,
											"end": 3221,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "25"
										},
										{
											"begin": 3212,
											"end": 3271,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 3212,
											"end": 3271,
											"name": "tag",
											"source": 6,
											"value": "93"
										},
										{
											"begin": 3212,
											"end": 3271,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 3281,
											"end": 3340,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "94"
										},
										{
											"begin": 3291,
											"end": 3292,
											"name": "PUSH",
											"source": 6,
											"value": "1"
										},
										{
											"begin": 3294,
											"end": 3336,
											"name": "PUSH",
											"source": 6,
											"value": "DAC17F958D2EE523A2206206994597C13D831EC7"
										},
										{
											"begin": 3338,
											"end": 3339,
											"name": "PUSH",
											"source": 6,
											"value": "2"
										},
										{
											"begin": 3281,
											"end": 3290,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "25"
										},
										{
											"begin": 3281,
											"end": 3340,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 3281,
											"end": 3340,
											"name": "tag",
											"source": 6,
											"value": "94"
										},
										{
											"begin": 3281,
											"end": 3340,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 3350,
											"end": 3409,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "95"
										},
										{
											"begin": 3360,
											"end": 3361,
											"name": "PUSH",
											"source": 6,
											"value": "2"
										},
										{
											"begin": 3363,
											"end": 3405,
											"name": "PUSH",
											"source": 6,
											"value": "55D398326F99059FF775485246999027B3197955"
										},
										{
											"begin": 3407,
											"end": 3408,
											"name": "PUSH",
											"source": 6,
											"value": "2"
										},
										{
											"begin": 3350,
											"end": 3359,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "25"
										},
										{
											"begin": 3350,
											"end": 3409,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 3350,
											"end": 3409,
											"name": "tag",
											"source": 6,
											"value": "95"
										},
										{
											"begin": 3350,
											"end": 3409,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 3419,
											"end": 3478,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "96"
										},
										{
											"begin": 3429,
											"end": 3430,
											"name": "PUSH",
											"source": 6,
											"value": "2"
										},
										{
											"begin": 3432,
											"end": 3474,
											"name": "PUSH",
											"source": 6,
											"value": "E9E7CEA3DEDCA5984780BAFC599BD69ADD087D56"
										},
										{
											"begin": 3476,
											"end": 3477,
											"name": "PUSH",
											"source": 6,
											"value": "5"
										},
										{
											"begin": 3419,
											"end": 3428,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "25"
										},
										{
											"begin": 3419,
											"end": 3478,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 3419,
											"end": 3478,
											"name": "tag",
											"source": 6,
											"value": "96"
										},
										{
											"begin": 3419,
											"end": 3478,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 3488,
											"end": 3547,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "97"
										},
										{
											"begin": 3498,
											"end": 3499,
											"name": "PUSH",
											"source": 6,
											"value": "6"
										},
										{
											"begin": 3501,
											"end": 3543,
											"name": "PUSH",
											"source": 6,
											"value": "B97EF9EF8734C71904D8002F8B6BC66DD9C48A6E"
										},
										{
											"begin": 3545,
											"end": 3546,
											"name": "PUSH",
											"source": 6,
											"value": "1"
										},
										{
											"begin": 3488,
											"end": 3497,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "25"
										},
										{
											"begin": 3488,
											"end": 3547,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 3488,
											"end": 3547,
											"name": "tag",
											"source": 6,
											"value": "97"
										},
										{
											"begin": 3488,
											"end": 3547,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 3557,
											"end": 3616,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "98"
										},
										{
											"begin": 3567,
											"end": 3568,
											"name": "PUSH",
											"source": 6,
											"value": "6"
										},
										{
											"begin": 3570,
											"end": 3612,
											"name": "PUSH",
											"source": 6,
											"value": "9702230A8EA53601F5CD2DC00FDBC13D4DF4A8C7"
										},
										{
											"begin": 3614,
											"end": 3615,
											"name": "PUSH",
											"source": 6,
											"value": "2"
										},
										{
											"begin": 3557,
											"end": 3566,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "25"
										},
										{
											"begin": 3557,
											"end": 3616,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 3557,
											"end": 3616,
											"name": "tag",
											"source": 6,
											"value": "98"
										},
										{
											"begin": 3557,
											"end": 3616,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 3626,
											"end": 3685,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "99"
										},
										{
											"begin": 3636,
											"end": 3637,
											"name": "PUSH",
											"source": 6,
											"value": "9"
										},
										{
											"begin": 3639,
											"end": 3681,
											"name": "PUSH",
											"source": 6,
											"value": "2791BCA1F2DE4661ED88A30C99A7A9449AA84174"
										},
										{
											"begin": 3683,
											"end": 3684,
											"name": "PUSH",
											"source": 6,
											"value": "1"
										},
										{
											"begin": 3626,
											"end": 3635,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "25"
										},
										{
											"begin": 3626,
											"end": 3685,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 3626,
											"end": 3685,
											"name": "tag",
											"source": 6,
											"value": "99"
										},
										{
											"begin": 3626,
											"end": 3685,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 3695,
											"end": 3754,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "100"
										},
										{
											"begin": 3705,
											"end": 3706,
											"name": "PUSH",
											"source": 6,
											"value": "9"
										},
										{
											"begin": 3708,
											"end": 3750,
											"name": "PUSH",
											"source": 6,
											"value": "C2132D05D31C914A87C6611C10748AEB04B58E8F"
										},
										{
											"begin": 3752,
											"end": 3753,
											"name": "PUSH",
											"source": 6,
											"value": "2"
										},
										{
											"begin": 3695,
											"end": 3704,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "25"
										},
										{
											"begin": 3695,
											"end": 3754,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 3695,
											"end": 3754,
											"name": "tag",
											"source": 6,
											"value": "100"
										},
										{
											"begin": 3695,
											"end": 3754,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 3764,
											"end": 3824,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "101"
										},
										{
											"begin": 3774,
											"end": 3776,
											"name": "PUSH",
											"source": 6,
											"value": "A"
										},
										{
											"begin": 3778,
											"end": 3820,
											"name": "PUSH",
											"source": 6,
											"value": "FF970A61A04B1CA14834A43F5DE4533EBDDB5CC8"
										},
										{
											"begin": 3822,
											"end": 3823,
											"name": "PUSH",
											"source": 6,
											"value": "1"
										},
										{
											"begin": 3764,
											"end": 3773,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "25"
										},
										{
											"begin": 3764,
											"end": 3824,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 3764,
											"end": 3824,
											"name": "tag",
											"source": 6,
											"value": "101"
										},
										{
											"begin": 3764,
											"end": 3824,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 3834,
											"end": 3894,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "102"
										},
										{
											"begin": 3844,
											"end": 3846,
											"name": "PUSH",
											"source": 6,
											"value": "A"
										},
										{
											"begin": 3848,
											"end": 3890,
											"name": "PUSH",
											"source": 6,
											"value": "FD086BC7CD5C481DCC9C85EBE478A1C0B69FCBB9"
										},
										{
											"begin": 3892,
											"end": 3893,
											"name": "PUSH",
											"source": 6,
											"value": "2"
										},
										{
											"begin": 3834,
											"end": 3843,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "25"
										},
										{
											"begin": 3834,
											"end": 3894,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 3834,
											"end": 3894,
											"name": "tag",
											"source": 6,
											"value": "102"
										},
										{
											"begin": 3834,
											"end": 3894,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 3904,
											"end": 3964,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "103"
										},
										{
											"begin": 3914,
											"end": 3916,
											"name": "PUSH",
											"source": 6,
											"value": "B"
										},
										{
											"begin": 3918,
											"end": 3960,
											"name": "PUSH",
											"source": 6,
											"value": "7F5C764CBC14F9669B88837CA1490CCA17C31607"
										},
										{
											"begin": 3962,
											"end": 3963,
											"name": "PUSH",
											"source": 6,
											"value": "1"
										},
										{
											"begin": 3904,
											"end": 3913,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "25"
										},
										{
											"begin": 3904,
											"end": 3964,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 3904,
											"end": 3964,
											"name": "tag",
											"source": 6,
											"value": "103"
										},
										{
											"begin": 3904,
											"end": 3964,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 3974,
											"end": 4034,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "104"
										},
										{
											"begin": 3984,
											"end": 3986,
											"name": "PUSH",
											"source": 6,
											"value": "C"
										},
										{
											"begin": 3988,
											"end": 4030,
											"name": "PUSH",
											"source": 6,
											"value": "4068DA6C83AFCFA0E13BA15A6696662335D5B75"
										},
										{
											"begin": 4032,
											"end": 4033,
											"name": "PUSH",
											"source": 6,
											"value": "1"
										},
										{
											"begin": 3974,
											"end": 3983,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "25"
										},
										{
											"begin": 3974,
											"end": 4034,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 3974,
											"end": 4034,
											"name": "tag",
											"source": 6,
											"value": "104"
										},
										{
											"begin": 3974,
											"end": 4034,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 4049,
											"end": 4089,
											"name": "PUSH",
											"source": 6,
											"value": "C8EC31998A27444F477C01DE93C393769FD4FC017FB63163F71F8A8AB72CCD50"
										},
										{
											"begin": 4063,
											"end": 4078,
											"name": "DUP4",
											"source": 6
										},
										{
											"begin": 4080,
											"end": 4088,
											"name": "DUP4",
											"source": 6
										},
										{
											"begin": 4049,
											"end": 4089,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 4049,
											"end": 4089,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 4049,
											"end": 4089,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "105"
										},
										{
											"begin": 4049,
											"end": 4089,
											"name": "SWAP3",
											"source": 6
										},
										{
											"begin": 4049,
											"end": 4089,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 4049,
											"end": 4089,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 4049,
											"end": 4089,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "106"
										},
										{
											"begin": 4049,
											"end": 4089,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 4049,
											"end": 4089,
											"name": "tag",
											"source": 6,
											"value": "105"
										},
										{
											"begin": 4049,
											"end": 4089,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 4049,
											"end": 4089,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 4049,
											"end": 4089,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 4049,
											"end": 4089,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 4049,
											"end": 4089,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 4049,
											"end": 4089,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 4049,
											"end": 4089,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 4049,
											"end": 4089,
											"name": "LOG1",
											"source": 6
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 2848,
											"end": 4096,
											"name": "JUMP",
											"source": 6,
											"value": "[out]"
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "tag",
											"source": 6,
											"value": "42"
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 8369,
											"end": 8404,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "108"
										},
										{
											"begin": 8369,
											"end": 8402,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "70"
										},
										{
											"begin": 8369,
											"end": 8404,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 8369,
											"end": 8404,
											"name": "tag",
											"source": 6,
											"value": "108"
										},
										{
											"begin": 8369,
											"end": 8404,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 8441,
											"end": 8442,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 8418,
											"end": 8443,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 8418,
											"end": 8443,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 8418,
											"end": 8429,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 8418,
											"end": 8443,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 8418,
											"end": 8443,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 8418,
											"end": 8443,
											"name": "EQ",
											"source": 6
										},
										{
											"begin": 8414,
											"end": 8479,
											"name": "ISZERO",
											"source": 6
										},
										{
											"begin": 8414,
											"end": 8479,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "109"
										},
										{
											"begin": 8414,
											"end": 8479,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 8452,
											"end": 8479,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 8452,
											"end": 8479,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 8452,
											"end": 8479,
											"name": "PUSH",
											"source": 6,
											"value": "3911C65500000000000000000000000000000000000000000000000000000000"
										},
										{
											"begin": 8452,
											"end": 8479,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 8452,
											"end": 8479,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 8452,
											"end": 8479,
											"name": "PUSH",
											"source": 6,
											"value": "4"
										},
										{
											"begin": 8452,
											"end": 8479,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 8452,
											"end": 8479,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 8452,
											"end": 8479,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 8452,
											"end": 8479,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 8452,
											"end": 8479,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 8452,
											"end": 8479,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 8452,
											"end": 8479,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 8452,
											"end": 8479,
											"name": "REVERT",
											"source": 6
										},
										{
											"begin": 8414,
											"end": 8479,
											"name": "tag",
											"source": 6,
											"value": "109"
										},
										{
											"begin": 8414,
											"end": 8479,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 8489,
											"end": 8506,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 8509,
											"end": 8521,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "110"
										},
										{
											"begin": 8509,
											"end": 8519,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "72"
										},
										{
											"begin": 8509,
											"end": 8521,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 8509,
											"end": 8521,
											"name": "tag",
											"source": 6,
											"value": "110"
										},
										{
											"begin": 8509,
											"end": 8521,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 8489,
											"end": 8521,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 8489,
											"end": 8521,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 8558,
											"end": 8569,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 8531,
											"end": 8532,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 8531,
											"end": 8547,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 8531,
											"end": 8547,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 8531,
											"end": 8547,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 8531,
											"end": 8570,
											"name": "PUSH",
											"source": 6,
											"value": "100"
										},
										{
											"begin": 8531,
											"end": 8570,
											"name": "EXP",
											"source": 6
										},
										{
											"begin": 8531,
											"end": 8570,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 8531,
											"end": 8570,
											"name": "SLOAD",
											"source": 6
										},
										{
											"begin": 8531,
											"end": 8570,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 8531,
											"end": 8570,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 8531,
											"end": 8570,
											"name": "MUL",
											"source": 6
										},
										{
											"begin": 8531,
											"end": 8570,
											"name": "NOT",
											"source": 6
										},
										{
											"begin": 8531,
											"end": 8570,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 8531,
											"end": 8570,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 8531,
											"end": 8570,
											"name": "DUP4",
											"source": 6
										},
										{
											"begin": 8531,
											"end": 8570,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 8531,
											"end": 8570,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 8531,
											"end": 8570,
											"name": "MUL",
											"source": 6
										},
										{
											"begin": 8531,
											"end": 8570,
											"name": "OR",
											"source": 6
										},
										{
											"begin": 8531,
											"end": 8570,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 8531,
											"end": 8570,
											"name": "SSTORE",
											"source": 6
										},
										{
											"begin": 8531,
											"end": 8570,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 8585,
											"end": 8613,
											"name": "PUSH",
											"source": 6,
											"value": "9AC04272C4559BF7459414ABB5568DC1DF58AB649F0AF4AFD1510074F5CC2FEC"
										},
										{
											"begin": 8601,
											"end": 8612,
											"name": "DUP3",
											"source": 6
										},
										{
											"begin": 8585,
											"end": 8613,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 8585,
											"end": 8613,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 8585,
											"end": 8613,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "111"
										},
										{
											"begin": 8585,
											"end": 8613,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 8585,
											"end": 8613,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 8585,
											"end": 8613,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "112"
										},
										{
											"begin": 8585,
											"end": 8613,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 8585,
											"end": 8613,
											"name": "tag",
											"source": 6,
											"value": "111"
										},
										{
											"begin": 8585,
											"end": 8613,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 8585,
											"end": 8613,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 8585,
											"end": 8613,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 8585,
											"end": 8613,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 8585,
											"end": 8613,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 8585,
											"end": 8613,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 8585,
											"end": 8613,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 8585,
											"end": 8613,
											"name": "LOG1",
											"source": 6
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 8305,
											"end": 8620,
											"name": "JUMP",
											"source": 6,
											"value": "[out]"
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "tag",
											"source": 6,
											"value": "46"
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 8146,
											"end": 8153,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 8165,
											"end": 8182,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 8185,
											"end": 8197,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "114"
										},
										{
											"begin": 8185,
											"end": 8195,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "72"
										},
										{
											"begin": 8185,
											"end": 8197,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 8185,
											"end": 8197,
											"name": "tag",
											"source": 6,
											"value": "114"
										},
										{
											"begin": 8185,
											"end": 8197,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 8165,
											"end": 8197,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 8165,
											"end": 8197,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 8286,
											"end": 8291,
											"name": "PUSH",
											"source": 6,
											"value": "2710"
										},
										{
											"begin": 8270,
											"end": 8271,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 8270,
											"end": 8280,
											"name": "PUSH",
											"source": 6,
											"value": "2"
										},
										{
											"begin": 8270,
											"end": 8280,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 8270,
											"end": 8280,
											"name": "SLOAD",
											"source": 6
										},
										{
											"begin": 8262,
											"end": 8267,
											"name": "PUSH",
											"source": 6,
											"value": "2710"
										},
										{
											"begin": 8262,
											"end": 8280,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "115"
										},
										{
											"begin": 8262,
											"end": 8280,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 8262,
											"end": 8280,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 8262,
											"end": 8280,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "116"
										},
										{
											"begin": 8262,
											"end": 8280,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 8262,
											"end": 8280,
											"name": "tag",
											"source": 6,
											"value": "115"
										},
										{
											"begin": 8262,
											"end": 8280,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 8251,
											"end": 8258,
											"name": "DUP5",
											"source": 6
										},
										{
											"begin": 8251,
											"end": 8281,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "117"
										},
										{
											"begin": 8251,
											"end": 8281,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 8251,
											"end": 8281,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 8251,
											"end": 8281,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "118"
										},
										{
											"begin": 8251,
											"end": 8281,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 8251,
											"end": 8281,
											"name": "tag",
											"source": 6,
											"value": "117"
										},
										{
											"begin": 8251,
											"end": 8281,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 8250,
											"end": 8292,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "119"
										},
										{
											"begin": 8250,
											"end": 8292,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 8250,
											"end": 8292,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 8250,
											"end": 8292,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "120"
										},
										{
											"begin": 8250,
											"end": 8292,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 8250,
											"end": 8292,
											"name": "tag",
											"source": 6,
											"value": "119"
										},
										{
											"begin": 8250,
											"end": 8292,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 8243,
											"end": 8292,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 8243,
											"end": 8292,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 8243,
											"end": 8292,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 8084,
											"end": 8299,
											"name": "JUMP",
											"source": 6,
											"value": "[out]"
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "tag",
											"source": 6,
											"value": "51"
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 4308,
											"end": 4312,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 680,
											"end": 707,
											"name": "DUP1",
											"source": 7
										},
										{
											"begin": 710,
											"end": 729,
											"name": "PUSH [tag]",
											"source": 7,
											"value": "122"
										},
										{
											"begin": 710,
											"end": 727,
											"name": "PUSH [tag]",
											"source": 7,
											"value": "123"
										},
										{
											"begin": 710,
											"end": 729,
											"name": "JUMP",
											"source": 7,
											"value": "[in]"
										},
										{
											"begin": 710,
											"end": 729,
											"name": "tag",
											"source": 7,
											"value": "122"
										},
										{
											"begin": 710,
											"end": 729,
											"name": "JUMPDEST",
											"source": 7
										},
										{
											"begin": 680,
											"end": 729,
											"name": "SWAP1",
											"source": 7
										},
										{
											"begin": 680,
											"end": 729,
											"name": "POP",
											"source": 7
										},
										{
											"begin": 615,
											"end": 616,
											"name": "PUSH",
											"source": 7,
											"value": "1"
										},
										{
											"begin": 743,
											"end": 744,
											"name": "DUP2",
											"source": 7
										},
										{
											"begin": 743,
											"end": 751,
											"name": "PUSH",
											"source": 7,
											"value": "0"
										},
										{
											"begin": 743,
											"end": 751,
											"name": "ADD",
											"source": 7
										},
										{
											"begin": 743,
											"end": 751,
											"name": "SLOAD",
											"source": 7
										},
										{
											"begin": 743,
											"end": 763,
											"name": "EQ",
											"source": 7
										},
										{
											"begin": 739,
											"end": 789,
											"name": "ISZERO",
											"source": 7
										},
										{
											"begin": 739,
											"end": 789,
											"name": "PUSH [tag]",
											"source": 7,
											"value": "124"
										},
										{
											"begin": 739,
											"end": 789,
											"name": "JUMPI",
											"source": 7
										},
										{
											"begin": 772,
											"end": 789,
											"name": "PUSH",
											"source": 7,
											"value": "40"
										},
										{
											"begin": 772,
											"end": 789,
											"name": "MLOAD",
											"source": 7
										},
										{
											"begin": 772,
											"end": 789,
											"name": "PUSH",
											"source": 7,
											"value": "29F745A700000000000000000000000000000000000000000000000000000000"
										},
										{
											"begin": 772,
											"end": 789,
											"name": "DUP2",
											"source": 7
										},
										{
											"begin": 772,
											"end": 789,
											"name": "MSTORE",
											"source": 7
										},
										{
											"begin": 772,
											"end": 789,
											"name": "PUSH",
											"source": 7,
											"value": "4"
										},
										{
											"begin": 772,
											"end": 789,
											"name": "ADD",
											"source": 7
										},
										{
											"begin": 772,
											"end": 789,
											"name": "PUSH",
											"source": 7,
											"value": "40"
										},
										{
											"begin": 772,
											"end": 789,
											"name": "MLOAD",
											"source": 7
										},
										{
											"begin": 772,
											"end": 789,
											"name": "DUP1",
											"source": 7
										},
										{
											"begin": 772,
											"end": 789,
											"name": "SWAP2",
											"source": 7
										},
										{
											"begin": 772,
											"end": 789,
											"name": "SUB",
											"source": 7
										},
										{
											"begin": 772,
											"end": 789,
											"name": "SWAP1",
											"source": 7
										},
										{
											"begin": 772,
											"end": 789,
											"name": "REVERT",
											"source": 7
										},
										{
											"begin": 739,
											"end": 789,
											"name": "tag",
											"source": 7,
											"value": "124"
										},
										{
											"begin": 739,
											"end": 789,
											"name": "JUMPDEST",
											"source": 7
										},
										{
											"begin": 615,
											"end": 616,
											"name": "PUSH",
											"source": 7,
											"value": "1"
										},
										{
											"begin": 799,
											"end": 800,
											"name": "DUP2",
											"source": 7
										},
										{
											"begin": 799,
											"end": 807,
											"name": "PUSH",
											"source": 7,
											"value": "0"
										},
										{
											"begin": 799,
											"end": 807,
											"name": "ADD",
											"source": 7
										},
										{
											"begin": 799,
											"end": 818,
											"name": "DUP2",
											"source": 7
										},
										{
											"begin": 799,
											"end": 818,
											"name": "SWAP1",
											"source": 7
										},
										{
											"begin": 799,
											"end": 818,
											"name": "SSTORE",
											"source": 7
										},
										{
											"begin": 799,
											"end": 818,
											"name": "POP",
											"source": 7
										},
										{
											"begin": 4345,
											"end": 4346,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 4332,
											"end": 4341,
											"name": "CALLVALUE",
											"source": 6
										},
										{
											"begin": 4332,
											"end": 4346,
											"name": "GT",
											"source": 6
										},
										{
											"begin": 4328,
											"end": 4387,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "126"
										},
										{
											"begin": 4328,
											"end": 4387,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 4355,
											"end": 4387,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 4355,
											"end": 4387,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 4355,
											"end": 4387,
											"name": "PUSH",
											"source": 6,
											"value": "B7586D1900000000000000000000000000000000000000000000000000000000"
										},
										{
											"begin": 4355,
											"end": 4387,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 4355,
											"end": 4387,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 4355,
											"end": 4387,
											"name": "PUSH",
											"source": 6,
											"value": "4"
										},
										{
											"begin": 4355,
											"end": 4387,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 4355,
											"end": 4387,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 4355,
											"end": 4387,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 4355,
											"end": 4387,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 4355,
											"end": 4387,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 4355,
											"end": 4387,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 4355,
											"end": 4387,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 4355,
											"end": 4387,
											"name": "REVERT",
											"source": 6
										},
										{
											"begin": 4328,
											"end": 4387,
											"name": "tag",
											"source": 6,
											"value": "126"
										},
										{
											"begin": 4328,
											"end": 4387,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 4416,
											"end": 4417,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 4401,
											"end": 4408,
											"name": "DUP4",
											"source": 6
										},
										{
											"begin": 4401,
											"end": 4412,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 4401,
											"end": 4412,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 4401,
											"end": 4412,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 4401,
											"end": 4417,
											"name": "GT",
											"source": 6
										},
										{
											"begin": 4397,
											"end": 4441,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "127"
										},
										{
											"begin": 4397,
											"end": 4441,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 4426,
											"end": 4441,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 4426,
											"end": 4441,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 4426,
											"end": 4441,
											"name": "PUSH",
											"source": 6,
											"value": "2C5211C600000000000000000000000000000000000000000000000000000000"
										},
										{
											"begin": 4426,
											"end": 4441,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 4426,
											"end": 4441,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 4426,
											"end": 4441,
											"name": "PUSH",
											"source": 6,
											"value": "4"
										},
										{
											"begin": 4426,
											"end": 4441,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 4426,
											"end": 4441,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 4426,
											"end": 4441,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 4426,
											"end": 4441,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 4426,
											"end": 4441,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 4426,
											"end": 4441,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 4426,
											"end": 4441,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 4426,
											"end": 4441,
											"name": "REVERT",
											"source": 6
										},
										{
											"begin": 4397,
											"end": 4441,
											"name": "tag",
											"source": 6,
											"value": "127"
										},
										{
											"begin": 4397,
											"end": 4441,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 4497,
											"end": 4498,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 4468,
											"end": 4499,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 4468,
											"end": 4499,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 4468,
											"end": 4475,
											"name": "DUP4",
											"source": 6
										},
										{
											"begin": 4468,
											"end": 4485,
											"name": "PUSH",
											"source": 6,
											"value": "20"
										},
										{
											"begin": 4468,
											"end": 4485,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 4468,
											"end": 4485,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 4468,
											"end": 4499,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 4468,
											"end": 4499,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 4468,
											"end": 4499,
											"name": "EQ",
											"source": 6
										},
										{
											"begin": 4468,
											"end": 4544,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 4468,
											"end": 4544,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "128"
										},
										{
											"begin": 4468,
											"end": 4544,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 4468,
											"end": 4544,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 4542,
											"end": 4543,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 4515,
											"end": 4544,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 4515,
											"end": 4544,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 4515,
											"end": 4522,
											"name": "DUP4",
											"source": 6
										},
										{
											"begin": 4515,
											"end": 4530,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 4515,
											"end": 4530,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 4515,
											"end": 4530,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 4515,
											"end": 4544,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 4515,
											"end": 4544,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 4515,
											"end": 4544,
											"name": "EQ",
											"source": 6
										},
										{
											"begin": 4468,
											"end": 4544,
											"name": "tag",
											"source": 6,
											"value": "128"
										},
										{
											"begin": 4468,
											"end": 4544,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 4468,
											"end": 4584,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 4468,
											"end": 4584,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "129"
										},
										{
											"begin": 4468,
											"end": 4584,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 4468,
											"end": 4584,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 4582,
											"end": 4583,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 4560,
											"end": 4584,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 4560,
											"end": 4584,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 4560,
											"end": 4567,
											"name": "DUP4",
											"source": 6
										},
										{
											"begin": 4560,
											"end": 4570,
											"name": "PUSH",
											"source": 6,
											"value": "C0"
										},
										{
											"begin": 4560,
											"end": 4570,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 4560,
											"end": 4570,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 4560,
											"end": 4584,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 4560,
											"end": 4584,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 4560,
											"end": 4584,
											"name": "EQ",
											"source": 6
										},
										{
											"begin": 4468,
											"end": 4584,
											"name": "tag",
											"source": 6,
											"value": "129"
										},
										{
											"begin": 4468,
											"end": 4584,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 4468,
											"end": 4642,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 4468,
											"end": 4642,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "130"
										},
										{
											"begin": 4468,
											"end": 4642,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 4468,
											"end": 4642,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 4640,
											"end": 4641,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 4600,
											"end": 4642,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 4600,
											"end": 4642,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 4600,
											"end": 4607,
											"name": "DUP4",
											"source": 6
										},
										{
											"begin": 4600,
											"end": 4628,
											"name": "PUSH",
											"source": 6,
											"value": "E0"
										},
										{
											"begin": 4600,
											"end": 4628,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 4600,
											"end": 4628,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 4600,
											"end": 4642,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 4600,
											"end": 4642,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 4600,
											"end": 4642,
											"name": "EQ",
											"source": 6
										},
										{
											"begin": 4468,
											"end": 4642,
											"name": "tag",
											"source": 6,
											"value": "130"
										},
										{
											"begin": 4468,
											"end": 4642,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 4451,
											"end": 4675,
											"name": "ISZERO",
											"source": 6
										},
										{
											"begin": 4451,
											"end": 4675,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "131"
										},
										{
											"begin": 4451,
											"end": 4675,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 4660,
											"end": 4675,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 4660,
											"end": 4675,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 4660,
											"end": 4675,
											"name": "PUSH",
											"source": 6,
											"value": "35BE3AC800000000000000000000000000000000000000000000000000000000"
										},
										{
											"begin": 4660,
											"end": 4675,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 4660,
											"end": 4675,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 4660,
											"end": 4675,
											"name": "PUSH",
											"source": 6,
											"value": "4"
										},
										{
											"begin": 4660,
											"end": 4675,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 4660,
											"end": 4675,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 4660,
											"end": 4675,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 4660,
											"end": 4675,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 4660,
											"end": 4675,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 4660,
											"end": 4675,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 4660,
											"end": 4675,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 4660,
											"end": 4675,
											"name": "REVERT",
											"source": 6
										},
										{
											"begin": 4451,
											"end": 4675,
											"name": "tag",
											"source": 6,
											"value": "131"
										},
										{
											"begin": 4451,
											"end": 4675,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 4712,
											"end": 4729,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 4732,
											"end": 4744,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "132"
										},
										{
											"begin": 4732,
											"end": 4742,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "72"
										},
										{
											"begin": 4732,
											"end": 4744,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 4732,
											"end": 4744,
											"name": "tag",
											"source": 6,
											"value": "132"
										},
										{
											"begin": 4732,
											"end": 4744,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 4712,
											"end": 4744,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 4712,
											"end": 4744,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 4760,
											"end": 4822,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "133"
										},
										{
											"begin": 4774,
											"end": 4775,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 4774,
											"end": 4783,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 4774,
											"end": 4783,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 4774,
											"end": 4783,
											"name": "PUSH",
											"source": 6,
											"value": "14"
										},
										{
											"begin": 4774,
											"end": 4783,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 4774,
											"end": 4783,
											"name": "SLOAD",
											"source": 6
										},
										{
											"begin": 4774,
											"end": 4783,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 4774,
											"end": 4783,
											"name": "PUSH",
											"source": 6,
											"value": "100"
										},
										{
											"begin": 4774,
											"end": 4783,
											"name": "EXP",
											"source": 6
										},
										{
											"begin": 4774,
											"end": 4783,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 4774,
											"end": 4783,
											"name": "DIV",
											"source": 6
										},
										{
											"begin": 4774,
											"end": 4783,
											"name": "PUSH",
											"source": 6,
											"value": "FFFF"
										},
										{
											"begin": 4774,
											"end": 4783,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 4785,
											"end": 4792,
											"name": "DUP6",
											"source": 6
										},
										{
											"begin": 4785,
											"end": 4802,
											"name": "PUSH",
											"source": 6,
											"value": "20"
										},
										{
											"begin": 4785,
											"end": 4802,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 4785,
											"end": 4802,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 4804,
											"end": 4811,
											"name": "DUP7",
											"source": 6
										},
										{
											"begin": 4804,
											"end": 4821,
											"name": "PUSH",
											"source": 6,
											"value": "80"
										},
										{
											"begin": 4804,
											"end": 4821,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 4804,
											"end": 4821,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 4760,
											"end": 4822,
											"name": "PUSH",
											"source": 6,
											"value": "FFFF"
										},
										{
											"begin": 4760,
											"end": 4822,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 4760,
											"end": 4773,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "57"
										},
										{
											"begin": 4760,
											"end": 4822,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 4760,
											"end": 4822,
											"name": "tag",
											"source": 6,
											"value": "133"
										},
										{
											"begin": 4760,
											"end": 4822,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 4755,
											"end": 4864,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "134"
										},
										{
											"begin": 4755,
											"end": 4864,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 4843,
											"end": 4864,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 4843,
											"end": 4864,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 4843,
											"end": 4864,
											"name": "PUSH",
											"source": 6,
											"value": "7790CA9900000000000000000000000000000000000000000000000000000000"
										},
										{
											"begin": 4843,
											"end": 4864,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 4843,
											"end": 4864,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 4843,
											"end": 4864,
											"name": "PUSH",
											"source": 6,
											"value": "4"
										},
										{
											"begin": 4843,
											"end": 4864,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 4843,
											"end": 4864,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 4843,
											"end": 4864,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 4843,
											"end": 4864,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 4843,
											"end": 4864,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 4843,
											"end": 4864,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 4843,
											"end": 4864,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 4843,
											"end": 4864,
											"name": "REVERT",
											"source": 6
										},
										{
											"begin": 4755,
											"end": 4864,
											"name": "tag",
											"source": 6,
											"value": "134"
										},
										{
											"begin": 4755,
											"end": 4864,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 4892,
											"end": 5023,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "135"
										},
										{
											"begin": 4923,
											"end": 4930,
											"name": "DUP5",
											"source": 6
										},
										{
											"begin": 4923,
											"end": 4941,
											"name": "PUSH",
											"source": 6,
											"value": "60"
										},
										{
											"begin": 4923,
											"end": 4941,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 4923,
											"end": 4941,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 4959,
											"end": 4966,
											"name": "DUP6",
											"source": 6
										},
										{
											"begin": 4959,
											"end": 4974,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 4959,
											"end": 4974,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 4959,
											"end": 4974,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 4992,
											"end": 4999,
											"name": "DUP7",
											"source": 6
										},
										{
											"begin": 4992,
											"end": 5009,
											"name": "PUSH",
											"source": 6,
											"value": "A0"
										},
										{
											"begin": 4992,
											"end": 5009,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 4992,
											"end": 5009,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 4892,
											"end": 5023,
											"name": "PUSH",
											"source": 6,
											"value": "FFFF"
										},
										{
											"begin": 4892,
											"end": 5023,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 4892,
											"end": 4905,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "57"
										},
										{
											"begin": 4892,
											"end": 5023,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 4892,
											"end": 5023,
											"name": "tag",
											"source": 6,
											"value": "135"
										},
										{
											"begin": 4892,
											"end": 5023,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 4874,
											"end": 5067,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "136"
										},
										{
											"begin": 4874,
											"end": 5067,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 5041,
											"end": 5067,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 5041,
											"end": 5067,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 5041,
											"end": 5067,
											"name": "PUSH",
											"source": 6,
											"value": "186C877F00000000000000000000000000000000000000000000000000000000"
										},
										{
											"begin": 5041,
											"end": 5067,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 5041,
											"end": 5067,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 5041,
											"end": 5067,
											"name": "PUSH",
											"source": 6,
											"value": "4"
										},
										{
											"begin": 5041,
											"end": 5067,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 5041,
											"end": 5067,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 5041,
											"end": 5067,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 5041,
											"end": 5067,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 5041,
											"end": 5067,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 5041,
											"end": 5067,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 5041,
											"end": 5067,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 5041,
											"end": 5067,
											"name": "REVERT",
											"source": 6
										},
										{
											"begin": 4874,
											"end": 5067,
											"name": "tag",
											"source": 6,
											"value": "136"
										},
										{
											"begin": 4874,
											"end": 5067,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 5108,
											"end": 5128,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 5131,
											"end": 5158,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "137"
										},
										{
											"begin": 5146,
											"end": 5153,
											"name": "DUP6",
											"source": 6
										},
										{
											"begin": 5146,
											"end": 5157,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 5146,
											"end": 5157,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 5146,
											"end": 5157,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 5131,
											"end": 5145,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "46"
										},
										{
											"begin": 5131,
											"end": 5158,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 5131,
											"end": 5158,
											"name": "tag",
											"source": 6,
											"value": "137"
										},
										{
											"begin": 5131,
											"end": 5158,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 5108,
											"end": 5158,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 5108,
											"end": 5158,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 5271,
											"end": 5291,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 5305,
											"end": 5312,
											"name": "DUP6",
											"source": 6
										},
										{
											"begin": 5305,
											"end": 5315,
											"name": "PUSH",
											"source": 6,
											"value": "C0"
										},
										{
											"begin": 5305,
											"end": 5315,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 5305,
											"end": 5315,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 5294,
											"end": 5316,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 5294,
											"end": 5316,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 5294,
											"end": 5316,
											"name": "PUSH",
											"source": 6,
											"value": "20"
										},
										{
											"begin": 5294,
											"end": 5316,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 5294,
											"end": 5316,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "138"
										},
										{
											"begin": 5294,
											"end": 5316,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 5294,
											"end": 5316,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 5294,
											"end": 5316,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "139"
										},
										{
											"begin": 5294,
											"end": 5316,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 5294,
											"end": 5316,
											"name": "tag",
											"source": 6,
											"value": "138"
										},
										{
											"begin": 5294,
											"end": 5316,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 5294,
											"end": 5316,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 5294,
											"end": 5316,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 5294,
											"end": 5316,
											"name": "PUSH",
											"source": 6,
											"value": "20"
										},
										{
											"begin": 5294,
											"end": 5316,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 5294,
											"end": 5316,
											"name": "DUP4",
											"source": 6
										},
										{
											"begin": 5294,
											"end": 5316,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 5294,
											"end": 5316,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 5294,
											"end": 5316,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 5294,
											"end": 5316,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 5294,
											"end": 5316,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 5294,
											"end": 5316,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 5294,
											"end": 5316,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 5271,
											"end": 5316,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 5271,
											"end": 5316,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 5374,
											"end": 5502,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "140"
										},
										{
											"begin": 5430,
											"end": 5440,
											"name": "CALLER",
											"source": 6
										},
										{
											"begin": 5462,
											"end": 5466,
											"name": "ADDRESS",
											"source": 6
										},
										{
											"begin": 5481,
											"end": 5488,
											"name": "DUP9",
											"source": 6
										},
										{
											"begin": 5481,
											"end": 5492,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 5481,
											"end": 5492,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 5481,
											"end": 5492,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 5381,
											"end": 5388,
											"name": "DUP10",
											"source": 6
										},
										{
											"begin": 5381,
											"end": 5398,
											"name": "PUSH",
											"source": 6,
											"value": "20"
										},
										{
											"begin": 5381,
											"end": 5398,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 5381,
											"end": 5398,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 5374,
											"end": 5416,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 5374,
											"end": 5416,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 5374,
											"end": 5416,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "141"
										},
										{
											"begin": 5374,
											"end": 5416,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 5374,
											"end": 5502,
											"name": "SWAP4",
											"source": 6
										},
										{
											"begin": 5374,
											"end": 5502,
											"name": "SWAP3",
											"source": 6
										},
										{
											"begin": 5374,
											"end": 5502,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 5374,
											"end": 5502,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 5374,
											"end": 5502,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFF"
										},
										{
											"begin": 5374,
											"end": 5502,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 5374,
											"end": 5502,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 5374,
											"end": 5502,
											"name": "tag",
											"source": 6,
											"value": "140"
										},
										{
											"begin": 5374,
											"end": 5502,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 5513,
											"end": 5624,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "142"
										},
										{
											"begin": 5572,
											"end": 5573,
											"name": "DUP4",
											"source": 6
										},
										{
											"begin": 5572,
											"end": 5588,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 5572,
											"end": 5588,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 5572,
											"end": 5588,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 5572,
											"end": 5588,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 5572,
											"end": 5588,
											"name": "SLOAD",
											"source": 6
										},
										{
											"begin": 5572,
											"end": 5588,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 5572,
											"end": 5588,
											"name": "PUSH",
											"source": 6,
											"value": "100"
										},
										{
											"begin": 5572,
											"end": 5588,
											"name": "EXP",
											"source": 6
										},
										{
											"begin": 5572,
											"end": 5588,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 5572,
											"end": 5588,
											"name": "DIV",
											"source": 6
										},
										{
											"begin": 5572,
											"end": 5588,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 5572,
											"end": 5588,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 5603,
											"end": 5610,
											"name": "DUP8",
											"source": 6
										},
										{
											"begin": 5603,
											"end": 5614,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 5603,
											"end": 5614,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 5603,
											"end": 5614,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 5520,
											"end": 5527,
											"name": "DUP9",
											"source": 6
										},
										{
											"begin": 5520,
											"end": 5537,
											"name": "PUSH",
											"source": 6,
											"value": "20"
										},
										{
											"begin": 5520,
											"end": 5537,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 5520,
											"end": 5537,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 5513,
											"end": 5550,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 5513,
											"end": 5550,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 5513,
											"end": 5550,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "143"
										},
										{
											"begin": 5513,
											"end": 5550,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 5513,
											"end": 5624,
											"name": "SWAP3",
											"source": 6
										},
										{
											"begin": 5513,
											"end": 5624,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 5513,
											"end": 5624,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 5513,
											"end": 5624,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFF"
										},
										{
											"begin": 5513,
											"end": 5624,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 5513,
											"end": 5624,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 5513,
											"end": 5624,
											"name": "tag",
											"source": 6,
											"value": "142"
										},
										{
											"begin": 5513,
											"end": 5624,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 5739,
											"end": 5740,
											"name": "DUP3",
											"source": 6
										},
										{
											"begin": 5739,
											"end": 5755,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 5739,
											"end": 5755,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 5739,
											"end": 5755,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 5739,
											"end": 5755,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 5739,
											"end": 5755,
											"name": "SLOAD",
											"source": 6
										},
										{
											"begin": 5739,
											"end": 5755,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 5739,
											"end": 5755,
											"name": "PUSH",
											"source": 6,
											"value": "100"
										},
										{
											"begin": 5739,
											"end": 5755,
											"name": "EXP",
											"source": 6
										},
										{
											"begin": 5739,
											"end": 5755,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 5739,
											"end": 5755,
											"name": "DIV",
											"source": 6
										},
										{
											"begin": 5739,
											"end": 5755,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 5739,
											"end": 5755,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 5761,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 5723,
											"end": 5761,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 5761,
											"name": "PUSH",
											"source": 6,
											"value": "9FBF10FC"
										},
										{
											"begin": 5769,
											"end": 5778,
											"name": "CALLVALUE",
											"source": 6
										},
										{
											"begin": 5793,
											"end": 5800,
											"name": "DUP9",
											"source": 6
										},
										{
											"begin": 5793,
											"end": 5811,
											"name": "PUSH",
											"source": 6,
											"value": "60"
										},
										{
											"begin": 5793,
											"end": 5811,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 5793,
											"end": 5811,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 5853,
											"end": 5860,
											"name": "DUP10",
											"source": 6
										},
										{
											"begin": 5853,
											"end": 5870,
											"name": "PUSH",
											"source": 6,
											"value": "80"
										},
										{
											"begin": 5853,
											"end": 5870,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 5853,
											"end": 5870,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 5914,
											"end": 5921,
											"name": "DUP11",
											"source": 6
										},
										{
											"begin": 5914,
											"end": 5931,
											"name": "PUSH",
											"source": 6,
											"value": "A0"
										},
										{
											"begin": 5914,
											"end": 5931,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 5914,
											"end": 5931,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 5988,
											"end": 5998,
											"name": "CALLER",
											"source": 6
										},
										{
											"begin": 6083,
											"end": 6090,
											"name": "DUP13",
											"source": 6
										},
										{
											"begin": 6083,
											"end": 6094,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 6083,
											"end": 6094,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 6083,
											"end": 6094,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 6153,
											"end": 6165,
											"name": "DUP10",
											"source": 6
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "PUSH",
											"source": 6,
											"value": "60"
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 6229,
											"end": 6235,
											"name": "PUSH",
											"source": 6,
											"value": "30D40"
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "PUSH",
											"source": 6,
											"value": "20"
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 6237,
											"end": 6238,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "PUSH",
											"source": 6,
											"value": "20"
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "PUSH",
											"source": 6,
											"value": "2"
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "PUSH",
											"source": 6,
											"value": "20"
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "PUSH",
											"source": 6,
											"value": "3078000000000000000000000000000000000000000000000000000000000000"
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 6205,
											"end": 6245,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 6295,
											"end": 6302,
											"name": "DUP16",
											"source": 6
										},
										{
											"begin": 6295,
											"end": 6323,
											"name": "PUSH",
											"source": 6,
											"value": "E0"
										},
										{
											"begin": 6295,
											"end": 6323,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 6295,
											"end": 6323,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 6278,
											"end": 6324,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 6278,
											"end": 6324,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 6278,
											"end": 6324,
											"name": "PUSH",
											"source": 6,
											"value": "20"
										},
										{
											"begin": 6278,
											"end": 6324,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 6278,
											"end": 6324,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "144"
										},
										{
											"begin": 6278,
											"end": 6324,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 6278,
											"end": 6324,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 6278,
											"end": 6324,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "81"
										},
										{
											"begin": 6278,
											"end": 6324,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 6278,
											"end": 6324,
											"name": "tag",
											"source": 6,
											"value": "144"
										},
										{
											"begin": 6278,
											"end": 6324,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 6278,
											"end": 6324,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 6278,
											"end": 6324,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 6278,
											"end": 6324,
											"name": "PUSH",
											"source": 6,
											"value": "20"
										},
										{
											"begin": 6278,
											"end": 6324,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 6278,
											"end": 6324,
											"name": "DUP4",
											"source": 6
										},
										{
											"begin": 6278,
											"end": 6324,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 6278,
											"end": 6324,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 6278,
											"end": 6324,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 6278,
											"end": 6324,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 6278,
											"end": 6324,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 6278,
											"end": 6324,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 6278,
											"end": 6324,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 6390,
											"end": 6397,
											"name": "DUP12",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "DUP12",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFF"
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "PUSH",
											"source": 6,
											"value": "E0"
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "SHL",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "PUSH",
											"source": 6,
											"value": "4"
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "145"
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "SWAP10",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "SWAP9",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "SWAP8",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "SWAP7",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "SWAP6",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "SWAP5",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "SWAP4",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "SWAP3",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "146"
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "tag",
											"source": 6,
											"value": "145"
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "DUP4",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "DUP6",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "DUP9",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "EXTCODESIZE",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "ISZERO",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "ISZERO",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "147"
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "REVERT",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "tag",
											"source": 6,
											"value": "147"
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "GAS",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "CALL",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "ISZERO",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "ISZERO",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "149"
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "RETURNDATASIZE",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "RETURNDATACOPY",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "RETURNDATASIZE",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "REVERT",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "tag",
											"source": 6,
											"value": "149"
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 5723,
											"end": 6424,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 6440,
											"end": 6656,
											"name": "PUSH",
											"source": 6,
											"value": "7A72E6F4A3D77F8A5A6C536A973421C5BF00107F9AEC7995661537673B8BE087"
										},
										{
											"begin": 6495,
											"end": 6502,
											"name": "DUP7",
											"source": 6
										},
										{
											"begin": 6495,
											"end": 6512,
											"name": "PUSH",
											"source": 6,
											"value": "20"
										},
										{
											"begin": 6495,
											"end": 6512,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 6495,
											"end": 6512,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 6526,
											"end": 6533,
											"name": "DUP8",
											"source": 6
										},
										{
											"begin": 6526,
											"end": 6541,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 6526,
											"end": 6541,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 6526,
											"end": 6541,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 6555,
											"end": 6565,
											"name": "CALLER",
											"source": 6
										},
										{
											"begin": 6579,
											"end": 6586,
											"name": "DUP10",
											"source": 6
										},
										{
											"begin": 6579,
											"end": 6589,
											"name": "PUSH",
											"source": 6,
											"value": "C0"
										},
										{
											"begin": 6579,
											"end": 6589,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 6579,
											"end": 6589,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 6603,
											"end": 6610,
											"name": "DUP11",
											"source": 6
										},
										{
											"begin": 6603,
											"end": 6614,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 6603,
											"end": 6614,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 6603,
											"end": 6614,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 6628,
											"end": 6635,
											"name": "DUP12",
											"source": 6
										},
										{
											"begin": 6628,
											"end": 6646,
											"name": "PUSH",
											"source": 6,
											"value": "60"
										},
										{
											"begin": 6628,
											"end": 6646,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 6628,
											"end": 6646,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 6440,
											"end": 6656,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 6440,
											"end": 6656,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 6440,
											"end": 6656,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "150"
										},
										{
											"begin": 6440,
											"end": 6656,
											"name": "SWAP7",
											"source": 6
										},
										{
											"begin": 6440,
											"end": 6656,
											"name": "SWAP6",
											"source": 6
										},
										{
											"begin": 6440,
											"end": 6656,
											"name": "SWAP5",
											"source": 6
										},
										{
											"begin": 6440,
											"end": 6656,
											"name": "SWAP4",
											"source": 6
										},
										{
											"begin": 6440,
											"end": 6656,
											"name": "SWAP3",
											"source": 6
										},
										{
											"begin": 6440,
											"end": 6656,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 6440,
											"end": 6656,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 6440,
											"end": 6656,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "151"
										},
										{
											"begin": 6440,
											"end": 6656,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 6440,
											"end": 6656,
											"name": "tag",
											"source": 6,
											"value": "150"
										},
										{
											"begin": 6440,
											"end": 6656,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 6440,
											"end": 6656,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 6440,
											"end": 6656,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 6440,
											"end": 6656,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 6440,
											"end": 6656,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 6440,
											"end": 6656,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 6440,
											"end": 6656,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 6440,
											"end": 6656,
											"name": "LOG1",
											"source": 6
										},
										{
											"begin": 6674,
											"end": 6678,
											"name": "PUSH",
											"source": 6,
											"value": "1"
										},
										{
											"begin": 6667,
											"end": 6678,
											"name": "SWAP5",
											"source": 6
										},
										{
											"begin": 6667,
											"end": 6678,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 6667,
											"end": 6678,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 6667,
											"end": 6678,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 6667,
											"end": 6678,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 572,
											"end": 573,
											"name": "PUSH",
											"source": 7,
											"value": "0"
										},
										{
											"begin": 839,
											"end": 840,
											"name": "DUP2",
											"source": 7
										},
										{
											"begin": 839,
											"end": 847,
											"name": "PUSH",
											"source": 7,
											"value": "0"
										},
										{
											"begin": 839,
											"end": 847,
											"name": "ADD",
											"source": 7
										},
										{
											"begin": 839,
											"end": 862,
											"name": "DUP2",
											"source": 7
										},
										{
											"begin": 839,
											"end": 862,
											"name": "SWAP1",
											"source": 7
										},
										{
											"begin": 839,
											"end": 862,
											"name": "SSTORE",
											"source": 7
										},
										{
											"begin": 839,
											"end": 862,
											"name": "POP",
											"source": 7
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 4184,
											"end": 6685,
											"name": "JUMP",
											"source": 6,
											"value": "[out]"
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "tag",
											"source": 6,
											"value": "57"
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 9630,
											"end": 9634,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 9646,
											"end": 9663,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 9666,
											"end": 9678,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "153"
										},
										{
											"begin": 9666,
											"end": 9676,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "72"
										},
										{
											"begin": 9666,
											"end": 9678,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 9666,
											"end": 9678,
											"name": "tag",
											"source": 6,
											"value": "153"
										},
										{
											"begin": 9666,
											"end": 9678,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 9646,
											"end": 9678,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 9646,
											"end": 9678,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 9726,
											"end": 9733,
											"name": "DUP3",
											"source": 6
										},
										{
											"begin": 9695,
											"end": 9696,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 9695,
											"end": 9704,
											"name": "PUSH",
											"source": 6,
											"value": "3"
										},
										{
											"begin": 9695,
											"end": 9704,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 9695,
											"end": 9714,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 9705,
											"end": 9713,
											"name": "DUP8",
											"source": 6
										},
										{
											"begin": 9695,
											"end": 9714,
											"name": "PUSH",
											"source": 6,
											"value": "FFFF"
										},
										{
											"begin": 9695,
											"end": 9714,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 9695,
											"end": 9714,
											"name": "PUSH",
											"source": 6,
											"value": "FFFF"
										},
										{
											"begin": 9695,
											"end": 9714,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 9695,
											"end": 9714,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 9695,
											"end": 9714,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 9695,
											"end": 9714,
											"name": "PUSH",
											"source": 6,
											"value": "20"
										},
										{
											"begin": 9695,
											"end": 9714,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 9695,
											"end": 9714,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 9695,
											"end": 9714,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 9695,
											"end": 9714,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 9695,
											"end": 9714,
											"name": "PUSH",
											"source": 6,
											"value": "20"
										},
										{
											"begin": 9695,
											"end": 9714,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 9695,
											"end": 9714,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 9695,
											"end": 9714,
											"name": "KECCAK256",
											"source": 6
										},
										{
											"begin": 9695,
											"end": 9722,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 9715,
											"end": 9721,
											"name": "DUP7",
											"source": 6
										},
										{
											"begin": 9695,
											"end": 9722,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 9695,
											"end": 9722,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 9695,
											"end": 9722,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 9695,
											"end": 9722,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 9695,
											"end": 9722,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 9695,
											"end": 9722,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 9695,
											"end": 9722,
											"name": "PUSH",
											"source": 6,
											"value": "20"
										},
										{
											"begin": 9695,
											"end": 9722,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 9695,
											"end": 9722,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 9695,
											"end": 9722,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 9695,
											"end": 9722,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 9695,
											"end": 9722,
											"name": "PUSH",
											"source": 6,
											"value": "20"
										},
										{
											"begin": 9695,
											"end": 9722,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 9695,
											"end": 9722,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 9695,
											"end": 9722,
											"name": "KECCAK256",
											"source": 6
										},
										{
											"begin": 9695,
											"end": 9722,
											"name": "SLOAD",
											"source": 6
										},
										{
											"begin": 9695,
											"end": 9733,
											"name": "EQ",
											"source": 6
										},
										{
											"begin": 9695,
											"end": 9748,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "154"
										},
										{
											"begin": 9695,
											"end": 9748,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 9743,
											"end": 9748,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 9695,
											"end": 9748,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "155"
										},
										{
											"begin": 9695,
											"end": 9748,
											"name": "JUMP",
											"source": 6
										},
										{
											"begin": 9695,
											"end": 9748,
											"name": "tag",
											"source": 6,
											"value": "154"
										},
										{
											"begin": 9695,
											"end": 9748,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 9736,
											"end": 9740,
											"name": "PUSH",
											"source": 6,
											"value": "1"
										},
										{
											"begin": 9695,
											"end": 9748,
											"name": "tag",
											"source": 6,
											"value": "155"
										},
										{
											"begin": 9695,
											"end": 9748,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 9688,
											"end": 9748,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 9688,
											"end": 9748,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 9688,
											"end": 9748,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "SWAP4",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "SWAP3",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 9506,
											"end": 9755,
											"name": "JUMP",
											"source": 6,
											"value": "[out]"
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "tag",
											"source": 6,
											"value": "63"
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 7255,
											"end": 7272,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 7275,
											"end": 7287,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "157"
										},
										{
											"begin": 7275,
											"end": 7285,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "72"
										},
										{
											"begin": 7275,
											"end": 7287,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 7275,
											"end": 7287,
											"name": "tag",
											"source": 6,
											"value": "157"
										},
										{
											"begin": 7275,
											"end": 7287,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 7255,
											"end": 7287,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 7255,
											"end": 7287,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7323,
											"end": 7324,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 7323,
											"end": 7339,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 7323,
											"end": 7339,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 7323,
											"end": 7339,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 7323,
											"end": 7339,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 7323,
											"end": 7339,
											"name": "SLOAD",
											"source": 6
										},
										{
											"begin": 7323,
											"end": 7339,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 7323,
											"end": 7339,
											"name": "PUSH",
											"source": 6,
											"value": "100"
										},
										{
											"begin": 7323,
											"end": 7339,
											"name": "EXP",
											"source": 6
										},
										{
											"begin": 7323,
											"end": 7339,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 7323,
											"end": 7339,
											"name": "DIV",
											"source": 6
										},
										{
											"begin": 7323,
											"end": 7339,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 7323,
											"end": 7339,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 7301,
											"end": 7340,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 7301,
											"end": 7340,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 7301,
											"end": 7311,
											"name": "CALLER",
											"source": 6
										},
										{
											"begin": 7301,
											"end": 7340,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 7301,
											"end": 7340,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 7301,
											"end": 7340,
											"name": "EQ",
											"source": 6
										},
										{
											"begin": 7297,
											"end": 7386,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "158"
										},
										{
											"begin": 7297,
											"end": 7386,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 7361,
											"end": 7386,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 7361,
											"end": 7386,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 7361,
											"end": 7386,
											"name": "PUSH",
											"source": 6,
											"value": "DADE3C7100000000000000000000000000000000000000000000000000000000"
										},
										{
											"begin": 7361,
											"end": 7386,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 7361,
											"end": 7386,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 7361,
											"end": 7386,
											"name": "PUSH",
											"source": 6,
											"value": "4"
										},
										{
											"begin": 7361,
											"end": 7386,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 7361,
											"end": 7386,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 7361,
											"end": 7386,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 7361,
											"end": 7386,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 7361,
											"end": 7386,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 7361,
											"end": 7386,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 7361,
											"end": 7386,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 7361,
											"end": 7386,
											"name": "REVERT",
											"source": 6
										},
										{
											"begin": 7297,
											"end": 7386,
											"name": "tag",
											"source": 6,
											"value": "158"
										},
										{
											"begin": 7297,
											"end": 7386,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 7397,
											"end": 7412,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 7426,
											"end": 7434,
											"name": "DUP3",
											"source": 6
										},
										{
											"begin": 7415,
											"end": 7446,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 7415,
											"end": 7446,
											"name": "PUSH",
											"source": 6,
											"value": "20"
										},
										{
											"begin": 7415,
											"end": 7446,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 7415,
											"end": 7446,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 7415,
											"end": 7446,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 7415,
											"end": 7446,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 7415,
											"end": 7446,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 7415,
											"end": 7446,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 7415,
											"end": 7446,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "159"
										},
										{
											"begin": 7415,
											"end": 7446,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 7415,
											"end": 7446,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 7415,
											"end": 7446,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "160"
										},
										{
											"begin": 7415,
											"end": 7446,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 7415,
											"end": 7446,
											"name": "tag",
											"source": 6,
											"value": "159"
										},
										{
											"begin": 7415,
											"end": 7446,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 7397,
											"end": 7446,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 7397,
											"end": 7446,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7463,
											"end": 7469,
											"name": "DUP5",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7479,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 7456,
											"end": 7479,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7479,
											"name": "PUSH",
											"source": 6,
											"value": "A9059CBB"
										},
										{
											"begin": 7480,
											"end": 7487,
											"name": "DUP3",
											"source": 6
										},
										{
											"begin": 7489,
											"end": 7497,
											"name": "DUP7",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "DUP4",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFF"
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "PUSH",
											"source": 6,
											"value": "E0"
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "SHL",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "PUSH",
											"source": 6,
											"value": "4"
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "161"
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "SWAP3",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "162"
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "tag",
											"source": 6,
											"value": "161"
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "PUSH",
											"source": 6,
											"value": "20"
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "DUP4",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "DUP8",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "EXTCODESIZE",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "ISZERO",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "ISZERO",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "163"
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "REVERT",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "tag",
											"source": 6,
											"value": "163"
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "GAS",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "CALL",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "ISZERO",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "ISZERO",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "165"
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "JUMPI",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "RETURNDATASIZE",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "RETURNDATACOPY",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "RETURNDATASIZE",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "REVERT",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "tag",
											"source": 6,
											"value": "165"
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "RETURNDATASIZE",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "PUSH",
											"source": 6,
											"value": "1F"
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "NOT",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "PUSH",
											"source": 6,
											"value": "1F"
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "DUP3",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "DUP3",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "MSTORE",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "DUP2",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "ADD",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "166"
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "167"
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "tag",
											"source": 6,
											"value": "166"
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 7456,
											"end": 7498,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7513,
											"end": 7554,
											"name": "PUSH",
											"source": 6,
											"value": "827E3293895509EF037B7438D4E009F37AD7B2562A14695D9DFD9CB065984218"
										},
										{
											"begin": 7537,
											"end": 7543,
											"name": "DUP6",
											"source": 6
										},
										{
											"begin": 7545,
											"end": 7553,
											"name": "DUP6",
											"source": 6
										},
										{
											"begin": 7513,
											"end": 7554,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 7513,
											"end": 7554,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 7513,
											"end": 7554,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "168"
										},
										{
											"begin": 7513,
											"end": 7554,
											"name": "SWAP3",
											"source": 6
										},
										{
											"begin": 7513,
											"end": 7554,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 7513,
											"end": 7554,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 7513,
											"end": 7554,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "162"
										},
										{
											"begin": 7513,
											"end": 7554,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 7513,
											"end": 7554,
											"name": "tag",
											"source": 6,
											"value": "168"
										},
										{
											"begin": 7513,
											"end": 7554,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 7513,
											"end": 7554,
											"name": "PUSH",
											"source": 6,
											"value": "40"
										},
										{
											"begin": 7513,
											"end": 7554,
											"name": "MLOAD",
											"source": 6
										},
										{
											"begin": 7513,
											"end": 7554,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 7513,
											"end": 7554,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 7513,
											"end": 7554,
											"name": "SUB",
											"source": 6
										},
										{
											"begin": 7513,
											"end": 7554,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 7513,
											"end": 7554,
											"name": "LOG1",
											"source": 6
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 7038,
											"end": 7561,
											"name": "JUMP",
											"source": 6,
											"value": "[out]"
										},
										{
											"begin": 8882,
											"end": 9194,
											"name": "tag",
											"source": 6,
											"value": "67"
										},
										{
											"begin": 8882,
											"end": 9194,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 680,
											"end": 707,
											"name": "PUSH",
											"source": 7,
											"value": "0"
										},
										{
											"begin": 710,
											"end": 729,
											"name": "PUSH [tag]",
											"source": 7,
											"value": "170"
										},
										{
											"begin": 710,
											"end": 727,
											"name": "PUSH [tag]",
											"source": 7,
											"value": "123"
										},
										{
											"begin": 710,
											"end": 729,
											"name": "JUMP",
											"source": 7,
											"value": "[in]"
										},
										{
											"begin": 710,
											"end": 729,
											"name": "tag",
											"source": 7,
											"value": "170"
										},
										{
											"begin": 710,
											"end": 729,
											"name": "JUMPDEST",
											"source": 7
										},
										{
											"begin": 680,
											"end": 729,
											"name": "SWAP1",
											"source": 7
										},
										{
											"begin": 680,
											"end": 729,
											"name": "POP",
											"source": 7
										},
										{
											"begin": 615,
											"end": 616,
											"name": "PUSH",
											"source": 7,
											"value": "1"
										},
										{
											"begin": 743,
											"end": 744,
											"name": "DUP2",
											"source": 7
										},
										{
											"begin": 743,
											"end": 751,
											"name": "PUSH",
											"source": 7,
											"value": "0"
										},
										{
											"begin": 743,
											"end": 751,
											"name": "ADD",
											"source": 7
										},
										{
											"begin": 743,
											"end": 751,
											"name": "SLOAD",
											"source": 7
										},
										{
											"begin": 743,
											"end": 763,
											"name": "EQ",
											"source": 7
										},
										{
											"begin": 739,
											"end": 789,
											"name": "ISZERO",
											"source": 7
										},
										{
											"begin": 739,
											"end": 789,
											"name": "PUSH [tag]",
											"source": 7,
											"value": "171"
										},
										{
											"begin": 739,
											"end": 789,
											"name": "JUMPI",
											"source": 7
										},
										{
											"begin": 772,
											"end": 789,
											"name": "PUSH",
											"source": 7,
											"value": "40"
										},
										{
											"begin": 772,
											"end": 789,
											"name": "MLOAD",
											"source": 7
										},
										{
											"begin": 772,
											"end": 789,
											"name": "PUSH",
											"source": 7,
											"value": "29F745A700000000000000000000000000000000000000000000000000000000"
										},
										{
											"begin": 772,
											"end": 789,
											"name": "DUP2",
											"source": 7
										},
										{
											"begin": 772,
											"end": 789,
											"name": "MSTORE",
											"source": 7
										},
										{
											"begin": 772,
											"end": 789,
											"name": "PUSH",
											"source": 7,
											"value": "4"
										},
										{
											"begin": 772,
											"end": 789,
											"name": "ADD",
											"source": 7
										},
										{
											"begin": 772,
											"end": 789,
											"name": "PUSH",
											"source": 7,
											"value": "40"
										},
										{
											"begin": 772,
											"end": 789,
											"name": "MLOAD",
											"source": 7
										},
										{
											"begin": 772,
											"end": 789,
											"name": "DUP1",
											"source": 7
										},
										{
											"begin": 772,
											"end": 789,
											"name": "SWAP2",
											"source": 7
										},
										{
											"begin": 772,
											"end": 789,
											"name": "SUB",
											"source": 7
										},
										{
											"begin": 772,
											"end": 789,
											"name": "SWAP1",
											"source": 7
										},
										{
											"begin": 772,
											"end": 789,
											"name": "REVERT",
											"source": 7
										},
										{
											"begin": 739,
											"end": 789,
											"name": "tag",
											"source": 7,
											"value": "171"
										},
										{
											"begin": 739,
											"end": 789,
											"name": "JUMPDEST",
											"source": 7
										},
										{
											"begin": 615,
											"end": 616,
											"name": "PUSH",
											"source": 7,
											"value": "1"
										},
										{
											"begin": 799,
											"end": 800,
											"name": "DUP2",
											"source": 7
										},
										{
											"begin": 799,
											"end": 807,
											"name": "PUSH",
											"source": 7,
											"value": "0"
										},
										{
											"begin": 799,
											"end": 807,
											"name": "ADD",
											"source": 7
										},
										{
											"begin": 799,
											"end": 818,
											"name": "DUP2",
											"source": 7
										},
										{
											"begin": 799,
											"end": 818,
											"name": "SWAP1",
											"source": 7
										},
										{
											"begin": 799,
											"end": 818,
											"name": "SSTORE",
											"source": 7
										},
										{
											"begin": 799,
											"end": 818,
											"name": "POP",
											"source": 7
										},
										{
											"begin": 9020,
											"end": 9055,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "173"
										},
										{
											"begin": 9020,
											"end": 9053,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "70"
										},
										{
											"begin": 9020,
											"end": 9055,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 9020,
											"end": 9055,
											"name": "tag",
											"source": 6,
											"value": "173"
										},
										{
											"begin": 9020,
											"end": 9055,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 9065,
											"end": 9115,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "174"
										},
										{
											"begin": 9100,
											"end": 9104,
											"name": "ADDRESS",
											"source": 6
										},
										{
											"begin": 9107,
											"end": 9114,
											"name": "DUP4",
											"source": 6
										},
										{
											"begin": 9072,
											"end": 9078,
											"name": "DUP7",
											"source": 6
										},
										{
											"begin": 9065,
											"end": 9091,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 9065,
											"end": 9091,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 9065,
											"end": 9091,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "143"
										},
										{
											"begin": 9065,
											"end": 9091,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 9065,
											"end": 9115,
											"name": "SWAP3",
											"source": 6
										},
										{
											"begin": 9065,
											"end": 9115,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 9065,
											"end": 9115,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 9065,
											"end": 9115,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFF"
										},
										{
											"begin": 9065,
											"end": 9115,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 9065,
											"end": 9115,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 9065,
											"end": 9115,
											"name": "tag",
											"source": 6,
											"value": "174"
										},
										{
											"begin": 9065,
											"end": 9115,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 9125,
											"end": 9187,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "175"
										},
										{
											"begin": 9165,
											"end": 9169,
											"name": "ADDRESS",
											"source": 6
										},
										{
											"begin": 9172,
											"end": 9177,
											"name": "DUP5",
											"source": 6
										},
										{
											"begin": 9179,
											"end": 9186,
											"name": "DUP5",
											"source": 6
										},
										{
											"begin": 9132,
											"end": 9138,
											"name": "DUP8",
											"source": 6
										},
										{
											"begin": 9125,
											"end": 9156,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 9125,
											"end": 9156,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 9125,
											"end": 9156,
											"name": "PUSH [tag]",
											"source": 6,
											"value": "141"
										},
										{
											"begin": 9125,
											"end": 9156,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 9125,
											"end": 9187,
											"name": "SWAP4",
											"source": 6
										},
										{
											"begin": 9125,
											"end": 9187,
											"name": "SWAP3",
											"source": 6
										},
										{
											"begin": 9125,
											"end": 9187,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 9125,
											"end": 9187,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 9125,
											"end": 9187,
											"name": "PUSH",
											"source": 6,
											"value": "FFFFFFFF"
										},
										{
											"begin": 9125,
											"end": 9187,
											"name": "AND",
											"source": 6
										},
										{
											"begin": 9125,
											"end": 9187,
											"name": "JUMP",
											"source": 6,
											"value": "[in]"
										},
										{
											"begin": 9125,
											"end": 9187,
											"name": "tag",
											"source": 6,
											"value": "175"
										},
										{
											"begin": 9125,
											"end": 9187,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 572,
											"end": 573,
											"name": "PUSH",
											"source": 7,
											"value": "0"
										},
										{
											"begin": 839,
											"end": 840,
											"name": "DUP2",
											"source": 7
										},
										{
											"begin": 839,
											"end": 847,
											"name": "PUSH",
											"source": 7,
											"value": "0"
										},
										{
											"begin": 839,
											"end": 847,
											"name": "ADD",
											"source": 7
										},
										{
											"begin": 839,
											"end": 862,
											"name": "DUP2",
											"source": 7
										},
										{
											"begin": 839,
											"end": 862,
											"name": "SWAP1",
											"source": 7
										},
										{
											"begin": 839,
											"end": 862,
											"name": "SSTORE",
											"source": 7
										},
										{
											"begin": 839,
											"end": 862,
											"name": "POP",
											"source": 7
										},
										{
											"begin": 8882,
											"end": 9194,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 8882,
											"end": 9194,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 8882,
											"end": 9194,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 8882,
											"end": 9194,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 8882,
											"end": 9194,
											"name": "JUMP",
											"source": 6,
											"value": "[out]"
										},
										{
											"begin": 1898,
											"end": 2048,
											"name": "tag",
											"source": 11,
											"value": "70"
										},
										{
											"begin": 1898,
											"end": 2048,
											"name": "JUMPDEST",
											"source": 11
										},
										{
											"begin": 1974,
											"end": 1990,
											"name": "PUSH [tag]",
											"source": 11,
											"value": "177"
										},
										{
											"begin": 1974,
											"end": 1988,
											"name": "PUSH [tag]",
											"source": 11,
											"value": "178"
										},
										{
											"begin": 1974,
											"end": 1990,
											"name": "JUMP",
											"source": 11,
											"value": "[in]"
										},
										{
											"begin": 1974,
											"end": 1990,
											"name": "tag",
											"source": 11,
											"value": "177"
										},
										{
											"begin": 1974,
											"end": 1990,
											"name": "JUMPDEST",
											"source": 11
										},
										{
											"begin": 1974,
											"end": 2004,
											"name": "PUSH",
											"source": 11,
											"value": "4"
										},
										{
											"begin": 1974,
											"end": 2004,
											"name": "ADD",
											"source": 11
										},
										{
											"begin": 1974,
											"end": 2004,
											"name": "PUSH",
											"source": 11,
											"value": "0"
										},
										{
											"begin": 1974,
											"end": 2004,
											"name": "SWAP1",
											"source": 11
										},
										{
											"begin": 1974,
											"end": 2004,
											"name": "SLOAD",
											"source": 11
										},
										{
											"begin": 1974,
											"end": 2004,
											"name": "SWAP1",
											"source": 11
										},
										{
											"begin": 1974,
											"end": 2004,
											"name": "PUSH",
											"source": 11,
											"value": "100"
										},
										{
											"begin": 1974,
											"end": 2004,
											"name": "EXP",
											"source": 11
										},
										{
											"begin": 1974,
											"end": 2004,
											"name": "SWAP1",
											"source": 11
										},
										{
											"begin": 1974,
											"end": 2004,
											"name": "DIV",
											"source": 11
										},
										{
											"begin": 1974,
											"end": 2004,
											"name": "PUSH",
											"source": 11,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 1974,
											"end": 2004,
											"name": "AND",
											"source": 11
										},
										{
											"begin": 1960,
											"end": 2004,
											"name": "PUSH",
											"source": 11,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 1960,
											"end": 2004,
											"name": "AND",
											"source": 11
										},
										{
											"begin": 1960,
											"end": 1970,
											"name": "CALLER",
											"source": 11
										},
										{
											"begin": 1960,
											"end": 2004,
											"name": "PUSH",
											"source": 11,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 1960,
											"end": 2004,
											"name": "AND",
											"source": 11
										},
										{
											"begin": 1960,
											"end": 2004,
											"name": "EQ",
											"source": 11
										},
										{
											"begin": 1952,
											"end": 2043,
											"name": "PUSH [tag]",
											"source": 11,
											"value": "179"
										},
										{
											"begin": 1952,
											"end": 2043,
											"name": "JUMPI",
											"source": 11
										},
										{
											"begin": 1952,
											"end": 2043,
											"name": "PUSH",
											"source": 11,
											"value": "40"
										},
										{
											"begin": 1952,
											"end": 2043,
											"name": "MLOAD",
											"source": 11
										},
										{
											"begin": 1952,
											"end": 2043,
											"name": "PUSH",
											"source": 11,
											"value": "8C379A000000000000000000000000000000000000000000000000000000000"
										},
										{
											"begin": 1952,
											"end": 2043,
											"name": "DUP2",
											"source": 11
										},
										{
											"begin": 1952,
											"end": 2043,
											"name": "MSTORE",
											"source": 11
										},
										{
											"begin": 1952,
											"end": 2043,
											"name": "PUSH",
											"source": 11,
											"value": "4"
										},
										{
											"begin": 1952,
											"end": 2043,
											"name": "ADD",
											"source": 11
										},
										{
											"begin": 1952,
											"end": 2043,
											"name": "PUSH [tag]",
											"source": 11,
											"value": "180"
										},
										{
											"begin": 1952,
											"end": 2043,
											"name": "SWAP1",
											"source": 11
										},
										{
											"begin": 1952,
											"end": 2043,
											"name": "PUSH [tag]",
											"source": 11,
											"value": "181"
										},
										{
											"begin": 1952,
											"end": 2043,
											"name": "JUMP",
											"source": 11,
											"value": "[in]"
										},
										{
											"begin": 1952,
											"end": 2043,
											"name": "tag",
											"source": 11,
											"value": "180"
										},
										{
											"begin": 1952,
											"end": 2043,
											"name": "JUMPDEST",
											"source": 11
										},
										{
											"begin": 1952,
											"end": 2043,
											"name": "PUSH",
											"source": 11,
											"value": "40"
										},
										{
											"begin": 1952,
											"end": 2043,
											"name": "MLOAD",
											"source": 11
										},
										{
											"begin": 1952,
											"end": 2043,
											"name": "DUP1",
											"source": 11
										},
										{
											"begin": 1952,
											"end": 2043,
											"name": "SWAP2",
											"source": 11
										},
										{
											"begin": 1952,
											"end": 2043,
											"name": "SUB",
											"source": 11
										},
										{
											"begin": 1952,
											"end": 2043,
											"name": "SWAP1",
											"source": 11
										},
										{
											"begin": 1952,
											"end": 2043,
											"name": "REVERT",
											"source": 11
										},
										{
											"begin": 1952,
											"end": 2043,
											"name": "tag",
											"source": 11,
											"value": "179"
										},
										{
											"begin": 1952,
											"end": 2043,
											"name": "JUMPDEST",
											"source": 11
										},
										{
											"begin": 1898,
											"end": 2048,
											"name": "JUMP",
											"source": 11,
											"value": "[out]"
										},
										{
											"begin": 10031,
											"end": 10257,
											"name": "tag",
											"source": 6,
											"value": "72"
										},
										{
											"begin": 10031,
											"end": 10257,
											"name": "JUMPDEST",
											"source": 6
										},
										{
											"begin": 10075,
											"end": 10092,
											"name": "PUSH",
											"source": 6,
											"value": "0"
										},
										{
											"begin": 10104,
											"end": 10121,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 1966,
											"end": 2007,
											"name": "PUSH",
											"source": 6,
											"value": "BAEADB48CBCF0176D6C6AC156B0140ABE0FB28A100A9A6A8B5DF37E55693B1C8"
										},
										{
											"begin": 10104,
											"end": 10133,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 10104,
											"end": 10133,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 10232,
											"end": 10241,
											"name": "DUP1",
											"source": 6
										},
										{
											"begin": 10222,
											"end": 10241,
											"name": "SWAP2",
											"source": 6
										},
										{
											"begin": 10222,
											"end": 10241,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 10208,
											"end": 10251,
											"name": "POP",
											"source": 6
										},
										{
											"begin": 10208,
											"end": 10251,
											"name": "SWAP1",
											"source": 6
										},
										{
											"begin": 10208,
											"end": 10251,
											"name": "JUMP",
											"source": 6,
											"value": "[out]"
										},
										{
											"begin": 937,
											"end": 1212,
											"name": "tag",
											"source": 7,
											"value": "123"
										},
										{
											"begin": 937,
											"end": 1212,
											"name": "JUMPDEST",
											"source": 7
										},
										{
											"begin": 1012,
											"end": 1042,
											"name": "PUSH",
											"source": 7,
											"value": "0"
										},
										{
											"begin": 1058,
											"end": 1074,
											"name": "DUP1",
											"source": 7
										},
										{
											"begin": 1077,
											"end": 1086,
											"name": "PUSH",
											"source": 7,
											"value": "A65BB2F450488AB0858C00EDC14ABC5297769BF42ADB48CFB77752890E8B697B"
										},
										{
											"begin": 1058,
											"end": 1086,
											"name": "SWAP1",
											"source": 7
										},
										{
											"begin": 1058,
											"end": 1086,
											"name": "POP",
											"source": 7
										},
										{
											"begin": 1188,
											"end": 1196,
											"name": "DUP1",
											"source": 7
										},
										{
											"begin": 1175,
											"end": 1196,
											"name": "SWAP2",
											"source": 7
										},
										{
											"begin": 1175,
											"end": 1196,
											"name": "POP",
											"source": 7
										},
										{
											"begin": 1161,
											"end": 1206,
											"name": "POP",
											"source": 7
										},
										{
											"begin": 1161,
											"end": 1206,
											"name": "SWAP1",
											"source": 7
										},
										{
											"begin": 1161,
											"end": 1206,
											"name": "JUMP",
											"source": 7,
											"value": "[out]"
										},
										{
											"begin": 974,
											"end": 1215,
											"name": "tag",
											"source": 2,
											"value": "141"
										},
										{
											"begin": 974,
											"end": 1215,
											"name": "JUMPDEST",
											"source": 2
										},
										{
											"begin": 1112,
											"end": 1208,
											"name": "PUSH [tag]",
											"source": 2,
											"value": "185"
										},
										{
											"begin": 1132,
											"end": 1137,
											"name": "DUP5",
											"source": 2
										},
										{
											"begin": 1162,
											"end": 1189,
											"name": "PUSH",
											"source": 2,
											"value": "23B872DD"
										},
										{
											"begin": 1162,
											"end": 1189,
											"name": "PUSH",
											"source": 2,
											"value": "E0"
										},
										{
											"begin": 1162,
											"end": 1189,
											"name": "SHL",
											"source": 2
										},
										{
											"begin": 1191,
											"end": 1195,
											"name": "DUP6",
											"source": 2
										},
										{
											"begin": 1197,
											"end": 1199,
											"name": "DUP6",
											"source": 2
										},
										{
											"begin": 1201,
											"end": 1206,
											"name": "DUP6",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "PUSH",
											"source": 2,
											"value": "40"
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "MLOAD",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "PUSH",
											"source": 2,
											"value": "24"
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "ADD",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "PUSH [tag]",
											"source": 2,
											"value": "186"
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "SWAP4",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "SWAP3",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "SWAP2",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "SWAP1",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "PUSH [tag]",
											"source": 2,
											"value": "187"
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "JUMP",
											"source": 2,
											"value": "[in]"
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "tag",
											"source": 2,
											"value": "186"
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "JUMPDEST",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "PUSH",
											"source": 2,
											"value": "40"
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "MLOAD",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "PUSH",
											"source": 2,
											"value": "20"
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "DUP2",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "DUP4",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "SUB",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "SUB",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "DUP2",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "MSTORE",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "SWAP1",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "PUSH",
											"source": 2,
											"value": "40"
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "MSTORE",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "SWAP1",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "PUSH",
											"source": 2,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "NOT",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "AND",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "PUSH",
											"source": 2,
											"value": "20"
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "DUP3",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "ADD",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "DUP1",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "MLOAD",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "PUSH",
											"source": 2,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "DUP4",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "DUP2",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "DUP4",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "AND",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "OR",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "DUP4",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "MSTORE",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "POP",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "POP",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "POP",
											"source": 2
										},
										{
											"begin": 1139,
											"end": 1207,
											"name": "POP",
											"source": 2
										},
										{
											"begin": 1112,
											"end": 1131,
											"name": "PUSH [tag]",
											"source": 2,
											"value": "188"
										},
										{
											"begin": 1112,
											"end": 1208,
											"name": "JUMP",
											"source": 2,
											"value": "[in]"
										},
										{
											"begin": 1112,
											"end": 1208,
											"name": "tag",
											"source": 2,
											"value": "185"
										},
										{
											"begin": 1112,
											"end": 1208,
											"name": "JUMPDEST",
											"source": 2
										},
										{
											"begin": 974,
											"end": 1215,
											"name": "POP",
											"source": 2
										},
										{
											"begin": 974,
											"end": 1215,
											"name": "POP",
											"source": 2
										},
										{
											"begin": 974,
											"end": 1215,
											"name": "POP",
											"source": 2
										},
										{
											"begin": 974,
											"end": 1215,
											"name": "POP",
											"source": 2
										},
										{
											"begin": 974,
											"end": 1215,
											"name": "JUMP",
											"source": 2,
											"value": "[out]"
										},
										{
											"begin": 1475,
											"end": 2078,
											"name": "tag",
											"source": 2,
											"value": "143"
										},
										{
											"begin": 1475,
											"end": 2078,
											"name": "JUMPDEST",
											"source": 2
										},
										{
											"begin": 1839,
											"end": 1840,
											"name": "PUSH",
											"source": 2,
											"value": "0"
										},
										{
											"begin": 1830,
											"end": 1835,
											"name": "DUP2",
											"source": 2
										},
										{
											"begin": 1830,
											"end": 1840,
											"name": "EQ",
											"source": 2
										},
										{
											"begin": 1829,
											"end": 1891,
											"name": "DUP1",
											"source": 2
										},
										{
											"begin": 1829,
											"end": 1891,
											"name": "PUSH [tag]",
											"source": 2,
											"value": "190"
										},
										{
											"begin": 1829,
											"end": 1891,
											"name": "JUMPI",
											"source": 2
										},
										{
											"begin": 1829,
											"end": 1891,
											"name": "POP",
											"source": 2
										},
										{
											"begin": 1889,
											"end": 1890,
											"name": "PUSH",
											"source": 2,
											"value": "0"
										},
										{
											"begin": 1846,
											"end": 1851,
											"name": "DUP4",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1861,
											"name": "PUSH",
											"source": 2,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 1846,
											"end": 1861,
											"name": "AND",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1861,
											"name": "PUSH",
											"source": 2,
											"value": "DD62ED3E"
										},
										{
											"begin": 1870,
											"end": 1874,
											"name": "ADDRESS",
											"source": 2
										},
										{
											"begin": 1877,
											"end": 1884,
											"name": "DUP6",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "PUSH",
											"source": 2,
											"value": "40"
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "MLOAD",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "DUP4",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "PUSH",
											"source": 2,
											"value": "FFFFFFFF"
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "AND",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "PUSH",
											"source": 2,
											"value": "E0"
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "SHL",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "DUP2",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "MSTORE",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "PUSH",
											"source": 2,
											"value": "4"
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "ADD",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "PUSH [tag]",
											"source": 2,
											"value": "191"
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "SWAP3",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "SWAP2",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "SWAP1",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "PUSH [tag]",
											"source": 2,
											"value": "192"
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "JUMP",
											"source": 2,
											"value": "[in]"
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "tag",
											"source": 2,
											"value": "191"
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "JUMPDEST",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "PUSH",
											"source": 2,
											"value": "20"
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "PUSH",
											"source": 2,
											"value": "40"
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "MLOAD",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "DUP1",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "DUP4",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "SUB",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "DUP2",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "DUP7",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "DUP1",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "EXTCODESIZE",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "ISZERO",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "DUP1",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "ISZERO",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "PUSH [tag]",
											"source": 2,
											"value": "193"
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "JUMPI",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "PUSH",
											"source": 2,
											"value": "0"
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "DUP1",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "REVERT",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "tag",
											"source": 2,
											"value": "193"
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "JUMPDEST",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "POP",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "GAS",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "STATICCALL",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "ISZERO",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "DUP1",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "ISZERO",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "PUSH [tag]",
											"source": 2,
											"value": "195"
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "JUMPI",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "RETURNDATASIZE",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "PUSH",
											"source": 2,
											"value": "0"
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "DUP1",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "RETURNDATACOPY",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "RETURNDATASIZE",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "PUSH",
											"source": 2,
											"value": "0"
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "REVERT",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "tag",
											"source": 2,
											"value": "195"
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "JUMPDEST",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "POP",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "POP",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "POP",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "POP",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "PUSH",
											"source": 2,
											"value": "40"
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "MLOAD",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "RETURNDATASIZE",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "PUSH",
											"source": 2,
											"value": "1F"
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "NOT",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "PUSH",
											"source": 2,
											"value": "1F"
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "DUP3",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "ADD",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "AND",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "DUP3",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "ADD",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "DUP1",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "PUSH",
											"source": 2,
											"value": "40"
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "MSTORE",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "POP",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "DUP2",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "ADD",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "SWAP1",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "PUSH [tag]",
											"source": 2,
											"value": "196"
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "SWAP2",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "SWAP1",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "PUSH [tag]",
											"source": 2,
											"value": "197"
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "JUMP",
											"source": 2,
											"value": "[in]"
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "tag",
											"source": 2,
											"value": "196"
										},
										{
											"begin": 1846,
											"end": 1885,
											"name": "JUMPDEST",
											"source": 2
										},
										{
											"begin": 1846,
											"end": 1890,
											"name": "EQ",
											"source": 2
										},
										{
											"begin": 1829,
											"end": 1891,
											"name": "tag",
											"source": 2,
											"value": "190"
										},
										{
											"begin": 1829,
											"end": 1891,
											"name": "JUMPDEST",
											"source": 2
										},
										{
											"begin": 1808,
											"end": 1971,
											"name": "PUSH [tag]",
											"source": 2,
											"value": "198"
										},
										{
											"begin": 1808,
											"end": 1971,
											"name": "JUMPI",
											"source": 2
										},
										{
											"begin": 1808,
											"end": 1971,
											"name": "PUSH",
											"source": 2,
											"value": "40"
										},
										{
											"begin": 1808,
											"end": 1971,
											"name": "MLOAD",
											"source": 2
										},
										{
											"begin": 1808,
											"end": 1971,
											"name": "PUSH",
											"source": 2,
											"value": "8C379A000000000000000000000000000000000000000000000000000000000"
										},
										{
											"begin": 1808,
											"end": 1971,
											"name": "DUP2",
											"source": 2
										},
										{
											"begin": 1808,
											"end": 1971,
											"name": "MSTORE",
											"source": 2
										},
										{
											"begin": 1808,
											"end": 1971,
											"name": "PUSH",
											"source": 2,
											"value": "4"
										},
										{
											"begin": 1808,
											"end": 1971,
											"name": "ADD",
											"source": 2
										},
										{
											"begin": 1808,
											"end": 1971,
											"name": "PUSH [tag]",
											"source": 2,
											"value": "199"
										},
										{
											"begin": 1808,
											"end": 1971,
											"name": "SWAP1",
											"source": 2
										},
										{
											"begin": 1808,
											"end": 1971,
											"name": "PUSH [tag]",
											"source": 2,
											"value": "200"
										},
										{
											"begin": 1808,
											"end": 1971,
											"name": "JUMP",
											"source": 2,
											"value": "[in]"
										},
										{
											"begin": 1808,
											"end": 1971,
											"name": "tag",
											"source": 2,
											"value": "199"
										},
										{
											"begin": 1808,
											"end": 1971,
											"name": "JUMPDEST",
											"source": 2
										},
										{
											"begin": 1808,
											"end": 1971,
											"name": "PUSH",
											"source": 2,
											"value": "40"
										},
										{
											"begin": 1808,
											"end": 1971,
											"name": "MLOAD",
											"source": 2
										},
										{
											"begin": 1808,
											"end": 1971,
											"name": "DUP1",
											"source": 2
										},
										{
											"begin": 1808,
											"end": 1971,
											"name": "SWAP2",
											"source": 2
										},
										{
											"begin": 1808,
											"end": 1971,
											"name": "SUB",
											"source": 2
										},
										{
											"begin": 1808,
											"end": 1971,
											"name": "SWAP1",
											"source": 2
										},
										{
											"begin": 1808,
											"end": 1971,
											"name": "REVERT",
											"source": 2
										},
										{
											"begin": 1808,
											"end": 1971,
											"name": "tag",
											"source": 2,
											"value": "198"
										},
										{
											"begin": 1808,
											"end": 1971,
											"name": "JUMPDEST",
											"source": 2
										},
										{
											"begin": 1981,
											"end": 2071,
											"name": "PUSH [tag]",
											"source": 2,
											"value": "201"
										},
										{
											"begin": 2001,
											"end": 2006,
											"name": "DUP4",
											"source": 2
										},
										{
											"begin": 2031,
											"end": 2053,
											"name": "PUSH",
											"source": 2,
											"value": "95EA7B3"
										},
										{
											"begin": 2031,
											"end": 2053,
											"name": "PUSH",
											"source": 2,
											"value": "E0"
										},
										{
											"begin": 2031,
											"end": 2053,
											"name": "SHL",
											"source": 2
										},
										{
											"begin": 2055,
											"end": 2062,
											"name": "DUP5",
											"source": 2
										},
										{
											"begin": 2064,
											"end": 2069,
											"name": "DUP5",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "PUSH",
											"source": 2,
											"value": "40"
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "MLOAD",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "PUSH",
											"source": 2,
											"value": "24"
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "ADD",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "PUSH [tag]",
											"source": 2,
											"value": "202"
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "SWAP3",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "SWAP2",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "SWAP1",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "PUSH [tag]",
											"source": 2,
											"value": "162"
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "JUMP",
											"source": 2,
											"value": "[in]"
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "tag",
											"source": 2,
											"value": "202"
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "JUMPDEST",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "PUSH",
											"source": 2,
											"value": "40"
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "MLOAD",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "PUSH",
											"source": 2,
											"value": "20"
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "DUP2",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "DUP4",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "SUB",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "SUB",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "DUP2",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "MSTORE",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "SWAP1",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "PUSH",
											"source": 2,
											"value": "40"
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "MSTORE",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "SWAP1",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "PUSH",
											"source": 2,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "NOT",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "AND",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "PUSH",
											"source": 2,
											"value": "20"
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "DUP3",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "ADD",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "DUP1",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "MLOAD",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "PUSH",
											"source": 2,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "DUP4",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "DUP2",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "DUP4",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "AND",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "OR",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "DUP4",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "MSTORE",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "POP",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "POP",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "POP",
											"source": 2
										},
										{
											"begin": 2008,
											"end": 2070,
											"name": "POP",
											"source": 2
										},
										{
											"begin": 1981,
											"end": 2000,
											"name": "PUSH [tag]",
											"source": 2,
											"value": "188"
										},
										{
											"begin": 1981,
											"end": 2071,
											"name": "JUMP",
											"source": 2,
											"value": "[in]"
										},
										{
											"begin": 1981,
											"end": 2071,
											"name": "tag",
											"source": 2,
											"value": "201"
										},
										{
											"begin": 1981,
											"end": 2071,
											"name": "JUMPDEST",
											"source": 2
										},
										{
											"begin": 1475,
											"end": 2078,
											"name": "POP",
											"source": 2
										},
										{
											"begin": 1475,
											"end": 2078,
											"name": "POP",
											"source": 2
										},
										{
											"begin": 1475,
											"end": 2078,
											"name": "POP",
											"source": 2
										},
										{
											"begin": 1475,
											"end": 2078,
											"name": "JUMP",
											"source": 2,
											"value": "[out]"
										},
										{
											"begin": 1191,
											"end": 1422,
											"name": "tag",
											"source": 11,
											"value": "178"
										},
										{
											"begin": 1191,
											"end": 1422,
											"name": "JUMPDEST",
											"source": 11
										},
										{
											"begin": 1240,
											"end": 1265,
											"name": "PUSH",
											"source": 11,
											"value": "0"
										},
										{
											"begin": 1273,
											"end": 1289,
											"name": "DUP1",
											"source": 11
										},
										{
											"begin": 203,
											"end": 248,
											"name": "PUSH",
											"source": 11,
											"value": "C8FCAD8DB84D3CC18B4C41D551EA0EE66DD599CDE068D998E57D5E09332C131C"
										},
										{
											"begin": 1273,
											"end": 1316,
											"name": "SWAP1",
											"source": 11
										},
										{
											"begin": 1273,
											"end": 1316,
											"name": "POP",
											"source": 11
										},
										{
											"begin": 1404,
											"end": 1412,
											"name": "DUP1",
											"source": 11
										},
										{
											"begin": 1393,
											"end": 1412,
											"name": "SWAP2",
											"source": 11
										},
										{
											"begin": 1393,
											"end": 1412,
											"name": "POP",
											"source": 11
										},
										{
											"begin": 1383,
											"end": 1418,
											"name": "POP",
											"source": 11
										},
										{
											"begin": 1383,
											"end": 1418,
											"name": "SWAP1",
											"source": 11
										},
										{
											"begin": 1383,
											"end": 1418,
											"name": "JUMP",
											"source": 11,
											"value": "[out]"
										},
										{
											"begin": 3747,
											"end": 4453,
											"name": "tag",
											"source": 2,
											"value": "188"
										},
										{
											"begin": 3747,
											"end": 4453,
											"name": "JUMPDEST",
											"source": 2
										},
										{
											"begin": 4166,
											"end": 4189,
											"name": "PUSH",
											"source": 2,
											"value": "0"
										},
										{
											"begin": 4192,
											"end": 4261,
											"name": "PUSH [tag]",
											"source": 2,
											"value": "205"
										},
										{
											"begin": 4220,
											"end": 4224,
											"name": "DUP3",
											"source": 2
										},
										{
											"begin": 4192,
											"end": 4261,
											"name": "PUSH",
											"source": 2,
											"value": "40"
										},
										{
											"begin": 4192,
											"end": 4261,
											"name": "MLOAD",
											"source": 2
										},
										{
											"begin": 4192,
											"end": 4261,
											"name": "DUP1",
											"source": 2
										},
										{
											"begin": 4192,
											"end": 4261,
											"name": "PUSH",
											"source": 2,
											"value": "40"
										},
										{
											"begin": 4192,
											"end": 4261,
											"name": "ADD",
											"source": 2
										},
										{
											"begin": 4192,
											"end": 4261,
											"name": "PUSH",
											"source": 2,
											"value": "40"
										},
										{
											"begin": 4192,
											"end": 4261,
											"name": "MSTORE",
											"source": 2
										},
										{
											"begin": 4192,
											"end": 4261,
											"name": "DUP1",
											"source": 2
										},
										{
											"begin": 4192,
											"end": 4261,
											"name": "PUSH",
											"source": 2,
											"value": "20"
										},
										{
											"begin": 4192,
											"end": 4261,
											"name": "DUP2",
											"source": 2
										},
										{
											"begin": 4192,
											"end": 4261,
											"name": "MSTORE",
											"source": 2
										},
										{
											"begin": 4192,
											"end": 4261,
											"name": "PUSH",
											"source": 2,
											"value": "20"
										},
										{
											"begin": 4192,
											"end": 4261,
											"name": "ADD",
											"source": 2
										},
										{
											"begin": 4192,
											"end": 4261,
											"name": "PUSH",
											"source": 2,
											"value": "5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564"
										},
										{
											"begin": 4192,
											"end": 4261,
											"name": "DUP2",
											"source": 2
										},
										{
											"begin": 4192,
											"end": 4261,
											"name": "MSTORE",
											"source": 2
										},
										{
											"begin": 4192,
											"end": 4261,
											"name": "POP",
											"source": 2
										},
										{
											"begin": 4200,
											"end": 4205,
											"name": "DUP6",
											"source": 2
										},
										{
											"begin": 4192,
											"end": 4219,
											"name": "PUSH",
											"source": 2,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 4192,
											"end": 4219,
											"name": "AND",
											"source": 2
										},
										{
											"begin": 4192,
											"end": 4219,
											"name": "PUSH [tag]",
											"source": 2,
											"value": "206"
										},
										{
											"begin": 4192,
											"end": 4219,
											"name": "SWAP1",
											"source": 2
										},
										{
											"begin": 4192,
											"end": 4261,
											"name": "SWAP3",
											"source": 2
										},
										{
											"begin": 4192,
											"end": 4261,
											"name": "SWAP2",
											"source": 2
										},
										{
											"begin": 4192,
											"end": 4261,
											"name": "SWAP1",
											"source": 2
										},
										{
											"begin": 4192,
											"end": 4261,
											"name": "PUSH",
											"source": 2,
											"value": "FFFFFFFF"
										},
										{
											"begin": 4192,
											"end": 4261,
											"name": "AND",
											"source": 2
										},
										{
											"begin": 4192,
											"end": 4261,
											"name": "JUMP",
											"source": 2,
											"value": "[in]"
										},
										{
											"begin": 4192,
											"end": 4261,
											"name": "tag",
											"source": 2,
											"value": "205"
										},
										{
											"begin": 4192,
											"end": 4261,
											"name": "JUMPDEST",
											"source": 2
										},
										{
											"begin": 4166,
											"end": 4261,
											"name": "SWAP1",
											"source": 2
										},
										{
											"begin": 4166,
											"end": 4261,
											"name": "POP",
											"source": 2
										},
										{
											"begin": 4295,
											"end": 4296,
											"name": "PUSH",
											"source": 2,
											"value": "0"
										},
										{
											"begin": 4275,
											"end": 4285,
											"name": "DUP2",
											"source": 2
										},
										{
											"begin": 4275,
											"end": 4292,
											"name": "MLOAD",
											"source": 2
										},
										{
											"begin": 4275,
											"end": 4296,
											"name": "GT",
											"source": 2
										},
										{
											"begin": 4271,
											"end": 4447,
											"name": "ISZERO",
											"source": 2
										},
										{
											"begin": 4271,
											"end": 4447,
											"name": "PUSH [tag]",
											"source": 2,
											"value": "207"
										},
										{
											"begin": 4271,
											"end": 4447,
											"name": "JUMPI",
											"source": 2
										},
										{
											"begin": 4370,
											"end": 4380,
											"name": "DUP1",
											"source": 2
										},
										{
											"begin": 4359,
											"end": 4389,
											"name": "DUP1",
											"source": 2
										},
										{
											"begin": 4359,
											"end": 4389,
											"name": "PUSH",
											"source": 2,
											"value": "20"
										},
										{
											"begin": 4359,
											"end": 4389,
											"name": "ADD",
											"source": 2
										},
										{
											"begin": 4359,
											"end": 4389,
											"name": "SWAP1",
											"source": 2
										},
										{
											"begin": 4359,
											"end": 4389,
											"name": "MLOAD",
											"source": 2
										},
										{
											"begin": 4359,
											"end": 4389,
											"name": "DUP2",
											"source": 2
										},
										{
											"begin": 4359,
											"end": 4389,
											"name": "ADD",
											"source": 2
										},
										{
											"begin": 4359,
											"end": 4389,
											"name": "SWAP1",
											"source": 2
										},
										{
											"begin": 4359,
											"end": 4389,
											"name": "PUSH [tag]",
											"source": 2,
											"value": "208"
										},
										{
											"begin": 4359,
											"end": 4389,
											"name": "SWAP2",
											"source": 2
										},
										{
											"begin": 4359,
											"end": 4389,
											"name": "SWAP1",
											"source": 2
										},
										{
											"begin": 4359,
											"end": 4389,
											"name": "PUSH [tag]",
											"source": 2,
											"value": "167"
										},
										{
											"begin": 4359,
											"end": 4389,
											"name": "JUMP",
											"source": 2,
											"value": "[in]"
										},
										{
											"begin": 4359,
											"end": 4389,
											"name": "tag",
											"source": 2,
											"value": "208"
										},
										{
											"begin": 4359,
											"end": 4389,
											"name": "JUMPDEST",
											"source": 2
										},
										{
											"begin": 4351,
											"end": 4436,
											"name": "PUSH [tag]",
											"source": 2,
											"value": "209"
										},
										{
											"begin": 4351,
											"end": 4436,
											"name": "JUMPI",
											"source": 2
										},
										{
											"begin": 4351,
											"end": 4436,
											"name": "PUSH",
											"source": 2,
											"value": "40"
										},
										{
											"begin": 4351,
											"end": 4436,
											"name": "MLOAD",
											"source": 2
										},
										{
											"begin": 4351,
											"end": 4436,
											"name": "PUSH",
											"source": 2,
											"value": "8C379A000000000000000000000000000000000000000000000000000000000"
										},
										{
											"begin": 4351,
											"end": 4436,
											"name": "DUP2",
											"source": 2
										},
										{
											"begin": 4351,
											"end": 4436,
											"name": "MSTORE",
											"source": 2
										},
										{
											"begin": 4351,
											"end": 4436,
											"name": "PUSH",
											"source": 2,
											"value": "4"
										},
										{
											"begin": 4351,
											"end": 4436,
											"name": "ADD",
											"source": 2
										},
										{
											"begin": 4351,
											"end": 4436,
											"name": "PUSH [tag]",
											"source": 2,
											"value": "210"
										},
										{
											"begin": 4351,
											"end": 4436,
											"name": "SWAP1",
											"source": 2
										},
										{
											"begin": 4351,
											"end": 4436,
											"name": "PUSH [tag]",
											"source": 2,
											"value": "211"
										},
										{
											"begin": 4351,
											"end": 4436,
											"name": "JUMP",
											"source": 2,
											"value": "[in]"
										},
										{
											"begin": 4351,
											"end": 4436,
											"name": "tag",
											"source": 2,
											"value": "210"
										},
										{
											"begin": 4351,
											"end": 4436,
											"name": "JUMPDEST",
											"source": 2
										},
										{
											"begin": 4351,
											"end": 4436,
											"name": "PUSH",
											"source": 2,
											"value": "40"
										},
										{
											"begin": 4351,
											"end": 4436,
											"name": "MLOAD",
											"source": 2
										},
										{
											"begin": 4351,
											"end": 4436,
											"name": "DUP1",
											"source": 2
										},
										{
											"begin": 4351,
											"end": 4436,
											"name": "SWAP2",
											"source": 2
										},
										{
											"begin": 4351,
											"end": 4436,
											"name": "SUB",
											"source": 2
										},
										{
											"begin": 4351,
											"end": 4436,
											"name": "SWAP1",
											"source": 2
										},
										{
											"begin": 4351,
											"end": 4436,
											"name": "REVERT",
											"source": 2
										},
										{
											"begin": 4351,
											"end": 4436,
											"name": "tag",
											"source": 2,
											"value": "209"
										},
										{
											"begin": 4351,
											"end": 4436,
											"name": "JUMPDEST",
											"source": 2
										},
										{
											"begin": 4271,
											"end": 4447,
											"name": "tag",
											"source": 2,
											"value": "207"
										},
										{
											"begin": 4271,
											"end": 4447,
											"name": "JUMPDEST",
											"source": 2
										},
										{
											"begin": 3747,
											"end": 4453,
											"name": "POP",
											"source": 2
										},
										{
											"begin": 3747,
											"end": 4453,
											"name": "POP",
											"source": 2
										},
										{
											"begin": 3747,
											"end": 4453,
											"name": "POP",
											"source": 2
										},
										{
											"begin": 3747,
											"end": 4453,
											"name": "JUMP",
											"source": 2,
											"value": "[out]"
										},
										{
											"begin": 3861,
											"end": 4084,
											"name": "tag",
											"source": 3,
											"value": "206"
										},
										{
											"begin": 3861,
											"end": 4084,
											"name": "JUMPDEST",
											"source": 3
										},
										{
											"begin": 3994,
											"end": 4006,
											"name": "PUSH",
											"source": 3,
											"value": "60"
										},
										{
											"begin": 4025,
											"end": 4077,
											"name": "PUSH [tag]",
											"source": 3,
											"value": "213"
										},
										{
											"begin": 4047,
											"end": 4053,
											"name": "DUP5",
											"source": 3
										},
										{
											"begin": 4055,
											"end": 4059,
											"name": "DUP5",
											"source": 3
										},
										{
											"begin": 4061,
											"end": 4062,
											"name": "PUSH",
											"source": 3,
											"value": "0"
										},
										{
											"begin": 4064,
											"end": 4076,
											"name": "DUP6",
											"source": 3
										},
										{
											"begin": 4025,
											"end": 4046,
											"name": "PUSH [tag]",
											"source": 3,
											"value": "214"
										},
										{
											"begin": 4025,
											"end": 4077,
											"name": "JUMP",
											"source": 3,
											"value": "[in]"
										},
										{
											"begin": 4025,
											"end": 4077,
											"name": "tag",
											"source": 3,
											"value": "213"
										},
										{
											"begin": 4025,
											"end": 4077,
											"name": "JUMPDEST",
											"source": 3
										},
										{
											"begin": 4018,
											"end": 4077,
											"name": "SWAP1",
											"source": 3
										},
										{
											"begin": 4018,
											"end": 4077,
											"name": "POP",
											"source": 3
										},
										{
											"begin": 3861,
											"end": 4084,
											"name": "SWAP4",
											"source": 3
										},
										{
											"begin": 3861,
											"end": 4084,
											"name": "SWAP3",
											"source": 3
										},
										{
											"begin": 3861,
											"end": 4084,
											"name": "POP",
											"source": 3
										},
										{
											"begin": 3861,
											"end": 4084,
											"name": "POP",
											"source": 3
										},
										{
											"begin": 3861,
											"end": 4084,
											"name": "POP",
											"source": 3
										},
										{
											"begin": 3861,
											"end": 4084,
											"name": "JUMP",
											"source": 3,
											"value": "[out]"
										},
										{
											"begin": 4948,
											"end": 5447,
											"name": "tag",
											"source": 3,
											"value": "214"
										},
										{
											"begin": 4948,
											"end": 5447,
											"name": "JUMPDEST",
											"source": 3
										},
										{
											"begin": 5113,
											"end": 5125,
											"name": "PUSH",
											"source": 3,
											"value": "60"
										},
										{
											"begin": 5170,
											"end": 5175,
											"name": "DUP3",
											"source": 3
										},
										{
											"begin": 5145,
											"end": 5166,
											"name": "SELFBALANCE",
											"source": 3
										},
										{
											"begin": 5145,
											"end": 5175,
											"name": "LT",
											"source": 3
										},
										{
											"begin": 5145,
											"end": 5175,
											"name": "ISZERO",
											"source": 3
										},
										{
											"begin": 5137,
											"end": 5218,
											"name": "PUSH [tag]",
											"source": 3,
											"value": "216"
										},
										{
											"begin": 5137,
											"end": 5218,
											"name": "JUMPI",
											"source": 3
										},
										{
											"begin": 5137,
											"end": 5218,
											"name": "PUSH",
											"source": 3,
											"value": "40"
										},
										{
											"begin": 5137,
											"end": 5218,
											"name": "MLOAD",
											"source": 3
										},
										{
											"begin": 5137,
											"end": 5218,
											"name": "PUSH",
											"source": 3,
											"value": "8C379A000000000000000000000000000000000000000000000000000000000"
										},
										{
											"begin": 5137,
											"end": 5218,
											"name": "DUP2",
											"source": 3
										},
										{
											"begin": 5137,
											"end": 5218,
											"name": "MSTORE",
											"source": 3
										},
										{
											"begin": 5137,
											"end": 5218,
											"name": "PUSH",
											"source": 3,
											"value": "4"
										},
										{
											"begin": 5137,
											"end": 5218,
											"name": "ADD",
											"source": 3
										},
										{
											"begin": 5137,
											"end": 5218,
											"name": "PUSH [tag]",
											"source": 3,
											"value": "217"
										},
										{
											"begin": 5137,
											"end": 5218,
											"name": "SWAP1",
											"source": 3
										},
										{
											"begin": 5137,
											"end": 5218,
											"name": "PUSH [tag]",
											"source": 3,
											"value": "218"
										},
										{
											"begin": 5137,
											"end": 5218,
											"name": "JUMP",
											"source": 3,
											"value": "[in]"
										},
										{
											"begin": 5137,
											"end": 5218,
											"name": "tag",
											"source": 3,
											"value": "217"
										},
										{
											"begin": 5137,
											"end": 5218,
											"name": "JUMPDEST",
											"source": 3
										},
										{
											"begin": 5137,
											"end": 5218,
											"name": "PUSH",
											"source": 3,
											"value": "40"
										},
										{
											"begin": 5137,
											"end": 5218,
											"name": "MLOAD",
											"source": 3
										},
										{
											"begin": 5137,
											"end": 5218,
											"name": "DUP1",
											"source": 3
										},
										{
											"begin": 5137,
											"end": 5218,
											"name": "SWAP2",
											"source": 3
										},
										{
											"begin": 5137,
											"end": 5218,
											"name": "SUB",
											"source": 3
										},
										{
											"begin": 5137,
											"end": 5218,
											"name": "SWAP1",
											"source": 3
										},
										{
											"begin": 5137,
											"end": 5218,
											"name": "REVERT",
											"source": 3
										},
										{
											"begin": 5137,
											"end": 5218,
											"name": "tag",
											"source": 3,
											"value": "216"
										},
										{
											"begin": 5137,
											"end": 5218,
											"name": "JUMPDEST",
											"source": 3
										},
										{
											"begin": 5236,
											"end": 5254,
											"name": "PUSH [tag]",
											"source": 3,
											"value": "219"
										},
										{
											"begin": 5247,
											"end": 5253,
											"name": "DUP6",
											"source": 3
										},
										{
											"begin": 5236,
											"end": 5246,
											"name": "PUSH [tag]",
											"source": 3,
											"value": "220"
										},
										{
											"begin": 5236,
											"end": 5254,
											"name": "JUMP",
											"source": 3,
											"value": "[in]"
										},
										{
											"begin": 5236,
											"end": 5254,
											"name": "tag",
											"source": 3,
											"value": "219"
										},
										{
											"begin": 5236,
											"end": 5254,
											"name": "JUMPDEST",
											"source": 3
										},
										{
											"begin": 5228,
											"end": 5288,
											"name": "PUSH [tag]",
											"source": 3,
											"value": "221"
										},
										{
											"begin": 5228,
											"end": 5288,
											"name": "JUMPI",
											"source": 3
										},
										{
											"begin": 5228,
											"end": 5288,
											"name": "PUSH",
											"source": 3,
											"value": "40"
										},
										{
											"begin": 5228,
											"end": 5288,
											"name": "MLOAD",
											"source": 3
										},
										{
											"begin": 5228,
											"end": 5288,
											"name": "PUSH",
											"source": 3,
											"value": "8C379A000000000000000000000000000000000000000000000000000000000"
										},
										{
											"begin": 5228,
											"end": 5288,
											"name": "DUP2",
											"source": 3
										},
										{
											"begin": 5228,
											"end": 5288,
											"name": "MSTORE",
											"source": 3
										},
										{
											"begin": 5228,
											"end": 5288,
											"name": "PUSH",
											"source": 3,
											"value": "4"
										},
										{
											"begin": 5228,
											"end": 5288,
											"name": "ADD",
											"source": 3
										},
										{
											"begin": 5228,
											"end": 5288,
											"name": "PUSH [tag]",
											"source": 3,
											"value": "222"
										},
										{
											"begin": 5228,
											"end": 5288,
											"name": "SWAP1",
											"source": 3
										},
										{
											"begin": 5228,
											"end": 5288,
											"name": "PUSH [tag]",
											"source": 3,
											"value": "223"
										},
										{
											"begin": 5228,
											"end": 5288,
											"name": "JUMP",
											"source": 3,
											"value": "[in]"
										},
										{
											"begin": 5228,
											"end": 5288,
											"name": "tag",
											"source": 3,
											"value": "222"
										},
										{
											"begin": 5228,
											"end": 5288,
											"name": "JUMPDEST",
											"source": 3
										},
										{
											"begin": 5228,
											"end": 5288,
											"name": "PUSH",
											"source": 3,
											"value": "40"
										},
										{
											"begin": 5228,
											"end": 5288,
											"name": "MLOAD",
											"source": 3
										},
										{
											"begin": 5228,
											"end": 5288,
											"name": "DUP1",
											"source": 3
										},
										{
											"begin": 5228,
											"end": 5288,
											"name": "SWAP2",
											"source": 3
										},
										{
											"begin": 5228,
											"end": 5288,
											"name": "SUB",
											"source": 3
										},
										{
											"begin": 5228,
											"end": 5288,
											"name": "SWAP1",
											"source": 3
										},
										{
											"begin": 5228,
											"end": 5288,
											"name": "REVERT",
											"source": 3
										},
										{
											"begin": 5228,
											"end": 5288,
											"name": "tag",
											"source": 3,
											"value": "221"
										},
										{
											"begin": 5228,
											"end": 5288,
											"name": "JUMPDEST",
											"source": 3
										},
										{
											"begin": 5300,
											"end": 5312,
											"name": "PUSH",
											"source": 3,
											"value": "0"
										},
										{
											"begin": 5314,
											"end": 5337,
											"name": "DUP1",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5347,
											"name": "DUP7",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5352,
											"name": "PUSH",
											"source": 3,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 5341,
											"end": 5352,
											"name": "AND",
											"source": 3
										},
										{
											"begin": 5360,
											"end": 5365,
											"name": "DUP6",
											"source": 3
										},
										{
											"begin": 5367,
											"end": 5371,
											"name": "DUP8",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "PUSH",
											"source": 3,
											"value": "40"
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "MLOAD",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "PUSH [tag]",
											"source": 3,
											"value": "224"
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "SWAP2",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "SWAP1",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "PUSH [tag]",
											"source": 3,
											"value": "225"
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "JUMP",
											"source": 3,
											"value": "[in]"
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "tag",
											"source": 3,
											"value": "224"
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "JUMPDEST",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "PUSH",
											"source": 3,
											"value": "0"
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "PUSH",
											"source": 3,
											"value": "40"
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "MLOAD",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "DUP1",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "DUP4",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "SUB",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "DUP2",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "DUP6",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "DUP8",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "GAS",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "CALL",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "SWAP3",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "POP",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "POP",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "POP",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "RETURNDATASIZE",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "DUP1",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "PUSH",
											"source": 3,
											"value": "0"
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "DUP2",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "EQ",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "PUSH [tag]",
											"source": 3,
											"value": "228"
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "JUMPI",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "PUSH",
											"source": 3,
											"value": "40"
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "MLOAD",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "SWAP2",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "POP",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "PUSH",
											"source": 3,
											"value": "1F"
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "NOT",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "PUSH",
											"source": 3,
											"value": "3F"
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "RETURNDATASIZE",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "ADD",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "AND",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "DUP3",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "ADD",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "PUSH",
											"source": 3,
											"value": "40"
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "MSTORE",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "RETURNDATASIZE",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "DUP3",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "MSTORE",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "RETURNDATASIZE",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "PUSH",
											"source": 3,
											"value": "0"
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "PUSH",
											"source": 3,
											"value": "20"
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "DUP5",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "ADD",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "RETURNDATACOPY",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "PUSH [tag]",
											"source": 3,
											"value": "227"
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "JUMP",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "tag",
											"source": 3,
											"value": "228"
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "JUMPDEST",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "PUSH",
											"source": 3,
											"value": "60"
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "SWAP2",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "POP",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "tag",
											"source": 3,
											"value": "227"
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "JUMPDEST",
											"source": 3
										},
										{
											"begin": 5341,
											"end": 5372,
											"name": "POP",
											"source": 3
										},
										{
											"begin": 5299,
											"end": 5372,
											"name": "SWAP2",
											"source": 3
										},
										{
											"begin": 5299,
											"end": 5372,
											"name": "POP",
											"source": 3
										},
										{
											"begin": 5299,
											"end": 5372,
											"name": "SWAP2",
											"source": 3
										},
										{
											"begin": 5299,
											"end": 5372,
											"name": "POP",
											"source": 3
										},
										{
											"begin": 5389,
											"end": 5440,
											"name": "PUSH [tag]",
											"source": 3,
											"value": "229"
										},
										{
											"begin": 5406,
											"end": 5413,
											"name": "DUP3",
											"source": 3
										},
										{
											"begin": 5415,
											"end": 5425,
											"name": "DUP3",
											"source": 3
										},
										{
											"begin": 5427,
											"end": 5439,
											"name": "DUP7",
											"source": 3
										},
										{
											"begin": 5389,
											"end": 5405,
											"name": "PUSH [tag]",
											"source": 3,
											"value": "230"
										},
										{
											"begin": 5389,
											"end": 5440,
											"name": "JUMP",
											"source": 3,
											"value": "[in]"
										},
										{
											"begin": 5389,
											"end": 5440,
											"name": "tag",
											"source": 3,
											"value": "229"
										},
										{
											"begin": 5389,
											"end": 5440,
											"name": "JUMPDEST",
											"source": 3
										},
										{
											"begin": 5382,
											"end": 5440,
											"name": "SWAP3",
											"source": 3
										},
										{
											"begin": 5382,
											"end": 5440,
											"name": "POP",
											"source": 3
										},
										{
											"begin": 5382,
											"end": 5440,
											"name": "POP",
											"source": 3
										},
										{
											"begin": 5382,
											"end": 5440,
											"name": "POP",
											"source": 3
										},
										{
											"begin": 4948,
											"end": 5447,
											"name": "SWAP5",
											"source": 3
										},
										{
											"begin": 4948,
											"end": 5447,
											"name": "SWAP4",
											"source": 3
										},
										{
											"begin": 4948,
											"end": 5447,
											"name": "POP",
											"source": 3
										},
										{
											"begin": 4948,
											"end": 5447,
											"name": "POP",
											"source": 3
										},
										{
											"begin": 4948,
											"end": 5447,
											"name": "POP",
											"source": 3
										},
										{
											"begin": 4948,
											"end": 5447,
											"name": "POP",
											"source": 3
										},
										{
											"begin": 4948,
											"end": 5447,
											"name": "JUMP",
											"source": 3,
											"value": "[out]"
										},
										{
											"begin": 1175,
											"end": 1495,
											"name": "tag",
											"source": 3,
											"value": "220"
										},
										{
											"begin": 1175,
											"end": 1495,
											"name": "JUMPDEST",
											"source": 3
										},
										{
											"begin": 1235,
											"end": 1239,
											"name": "PUSH",
											"source": 3,
											"value": "0"
										},
										{
											"begin": 1487,
											"end": 1488,
											"name": "DUP1",
											"source": 3
										},
										{
											"begin": 1465,
											"end": 1472,
											"name": "DUP3",
											"source": 3
										},
										{
											"begin": 1465,
											"end": 1484,
											"name": "PUSH",
											"source": 3,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 1465,
											"end": 1484,
											"name": "AND",
											"source": 3
										},
										{
											"begin": 1465,
											"end": 1484,
											"name": "EXTCODESIZE",
											"source": 3
										},
										{
											"begin": 1465,
											"end": 1488,
											"name": "GT",
											"source": 3
										},
										{
											"begin": 1458,
											"end": 1488,
											"name": "SWAP1",
											"source": 3
										},
										{
											"begin": 1458,
											"end": 1488,
											"name": "POP",
											"source": 3
										},
										{
											"begin": 1175,
											"end": 1495,
											"name": "SWAP2",
											"source": 3
										},
										{
											"begin": 1175,
											"end": 1495,
											"name": "SWAP1",
											"source": 3
										},
										{
											"begin": 1175,
											"end": 1495,
											"name": "POP",
											"source": 3
										},
										{
											"begin": 1175,
											"end": 1495,
											"name": "JUMP",
											"source": 3,
											"value": "[out]"
										},
										{
											"begin": 7561,
											"end": 8303,
											"name": "tag",
											"source": 3,
											"value": "230"
										},
										{
											"begin": 7561,
											"end": 8303,
											"name": "JUMPDEST",
											"source": 3
										},
										{
											"begin": 7707,
											"end": 7719,
											"name": "PUSH",
											"source": 3,
											"value": "60"
										},
										{
											"begin": 7735,
											"end": 7742,
											"name": "DUP4",
											"source": 3
										},
										{
											"begin": 7731,
											"end": 8297,
											"name": "ISZERO",
											"source": 3
										},
										{
											"begin": 7731,
											"end": 8297,
											"name": "PUSH [tag]",
											"source": 3,
											"value": "233"
										},
										{
											"begin": 7731,
											"end": 8297,
											"name": "JUMPI",
											"source": 3
										},
										{
											"begin": 7765,
											"end": 7775,
											"name": "DUP3",
											"source": 3
										},
										{
											"begin": 7758,
											"end": 7775,
											"name": "SWAP1",
											"source": 3
										},
										{
											"begin": 7758,
											"end": 7775,
											"name": "POP",
											"source": 3
										},
										{
											"begin": 7758,
											"end": 7775,
											"name": "PUSH [tag]",
											"source": 3,
											"value": "232"
										},
										{
											"begin": 7758,
											"end": 7775,
											"name": "JUMP",
											"source": 3
										},
										{
											"begin": 7731,
											"end": 8297,
											"name": "tag",
											"source": 3,
											"value": "233"
										},
										{
											"begin": 7731,
											"end": 8297,
											"name": "JUMPDEST",
											"source": 3
										},
										{
											"begin": 7896,
											"end": 7897,
											"name": "PUSH",
											"source": 3,
											"value": "0"
										},
										{
											"begin": 7876,
											"end": 7886,
											"name": "DUP4",
											"source": 3
										},
										{
											"begin": 7876,
											"end": 7893,
											"name": "MLOAD",
											"source": 3
										},
										{
											"begin": 7876,
											"end": 7897,
											"name": "GT",
											"source": 3
										},
										{
											"begin": 7872,
											"end": 8287,
											"name": "ISZERO",
											"source": 3
										},
										{
											"begin": 7872,
											"end": 8287,
											"name": "PUSH [tag]",
											"source": 3,
											"value": "235"
										},
										{
											"begin": 7872,
											"end": 8287,
											"name": "JUMPI",
											"source": 3
										},
										{
											"begin": 8120,
											"end": 8130,
											"name": "DUP3",
											"source": 3
										},
										{
											"begin": 8114,
											"end": 8131,
											"name": "MLOAD",
											"source": 3
										},
										{
											"begin": 8180,
											"end": 8195,
											"name": "DUP1",
											"source": 3
										},
										{
											"begin": 8167,
											"end": 8177,
											"name": "DUP5",
											"source": 3
										},
										{
											"begin": 8163,
											"end": 8165,
											"name": "PUSH",
											"source": 3,
											"value": "20"
										},
										{
											"begin": 8159,
											"end": 8178,
											"name": "ADD",
											"source": 3
										},
										{
											"begin": 8152,
											"end": 8196,
											"name": "REVERT",
											"source": 3
										},
										{
											"begin": 8069,
											"end": 8214,
											"name": "tag",
											"source": 3,
											"value": "235"
										},
										{
											"begin": 8069,
											"end": 8214,
											"name": "JUMPDEST",
											"source": 3
										},
										{
											"begin": 8259,
											"end": 8271,
											"name": "DUP2",
											"source": 3
										},
										{
											"begin": 8252,
											"end": 8272,
											"name": "PUSH",
											"source": 3,
											"value": "40"
										},
										{
											"begin": 8252,
											"end": 8272,
											"name": "MLOAD",
											"source": 3
										},
										{
											"begin": 8252,
											"end": 8272,
											"name": "PUSH",
											"source": 3,
											"value": "8C379A000000000000000000000000000000000000000000000000000000000"
										},
										{
											"begin": 8252,
											"end": 8272,
											"name": "DUP2",
											"source": 3
										},
										{
											"begin": 8252,
											"end": 8272,
											"name": "MSTORE",
											"source": 3
										},
										{
											"begin": 8252,
											"end": 8272,
											"name": "PUSH",
											"source": 3,
											"value": "4"
										},
										{
											"begin": 8252,
											"end": 8272,
											"name": "ADD",
											"source": 3
										},
										{
											"begin": 8252,
											"end": 8272,
											"name": "PUSH [tag]",
											"source": 3,
											"value": "237"
										},
										{
											"begin": 8252,
											"end": 8272,
											"name": "SWAP2",
											"source": 3
										},
										{
											"begin": 8252,
											"end": 8272,
											"name": "SWAP1",
											"source": 3
										},
										{
											"begin": 8252,
											"end": 8272,
											"name": "PUSH [tag]",
											"source": 3,
											"value": "238"
										},
										{
											"begin": 8252,
											"end": 8272,
											"name": "JUMP",
											"source": 3,
											"value": "[in]"
										},
										{
											"begin": 8252,
											"end": 8272,
											"name": "tag",
											"source": 3,
											"value": "237"
										},
										{
											"begin": 8252,
											"end": 8272,
											"name": "JUMPDEST",
											"source": 3
										},
										{
											"begin": 8252,
											"end": 8272,
											"name": "PUSH",
											"source": 3,
											"value": "40"
										},
										{
											"begin": 8252,
											"end": 8272,
											"name": "MLOAD",
											"source": 3
										},
										{
											"begin": 8252,
											"end": 8272,
											"name": "DUP1",
											"source": 3
										},
										{
											"begin": 8252,
											"end": 8272,
											"name": "SWAP2",
											"source": 3
										},
										{
											"begin": 8252,
											"end": 8272,
											"name": "SUB",
											"source": 3
										},
										{
											"begin": 8252,
											"end": 8272,
											"name": "SWAP1",
											"source": 3
										},
										{
											"begin": 8252,
											"end": 8272,
											"name": "REVERT",
											"source": 3
										},
										{
											"begin": 7561,
											"end": 8303,
											"name": "tag",
											"source": 3,
											"value": "232"
										},
										{
											"begin": 7561,
											"end": 8303,
											"name": "JUMPDEST",
											"source": 3
										},
										{
											"begin": 7561,
											"end": 8303,
											"name": "SWAP4",
											"source": 3
										},
										{
											"begin": 7561,
											"end": 8303,
											"name": "SWAP3",
											"source": 3
										},
										{
											"begin": 7561,
											"end": 8303,
											"name": "POP",
											"source": 3
										},
										{
											"begin": 7561,
											"end": 8303,
											"name": "POP",
											"source": 3
										},
										{
											"begin": 7561,
											"end": 8303,
											"name": "POP",
											"source": 3
										},
										{
											"begin": 7561,
											"end": 8303,
											"name": "JUMP",
											"source": 3,
											"value": "[out]"
										},
										{
											"begin": 7,
											"end": 350,
											"name": "tag",
											"source": 13,
											"value": "240"
										},
										{
											"begin": 7,
											"end": 350,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 84,
											"end": 89,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 109,
											"end": 174,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "242"
										},
										{
											"begin": 125,
											"end": 173,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "243"
										},
										{
											"begin": 166,
											"end": 172,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 125,
											"end": 173,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "244"
										},
										{
											"begin": 125,
											"end": 173,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 125,
											"end": 173,
											"name": "tag",
											"source": 13,
											"value": "243"
										},
										{
											"begin": 125,
											"end": 173,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 109,
											"end": 174,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "245"
										},
										{
											"begin": 109,
											"end": 174,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 109,
											"end": 174,
											"name": "tag",
											"source": 13,
											"value": "242"
										},
										{
											"begin": 109,
											"end": 174,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 100,
											"end": 174,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 100,
											"end": 174,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 197,
											"end": 203,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 190,
											"end": 195,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 183,
											"end": 204,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 235,
											"end": 239,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 228,
											"end": 233,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 224,
											"end": 240,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 273,
											"end": 276,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 264,
											"end": 270,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 259,
											"end": 262,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 255,
											"end": 271,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 252,
											"end": 277,
											"name": "GT",
											"source": 13
										},
										{
											"begin": 249,
											"end": 251,
											"name": "ISZERO",
											"source": 13
										},
										{
											"begin": 249,
											"end": 251,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "246"
										},
										{
											"begin": 249,
											"end": 251,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 290,
											"end": 291,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 287,
											"end": 288,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 280,
											"end": 292,
											"name": "REVERT",
											"source": 13
										},
										{
											"begin": 249,
											"end": 251,
											"name": "tag",
											"source": 13,
											"value": "246"
										},
										{
											"begin": 249,
											"end": 251,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 303,
											"end": 344,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "247"
										},
										{
											"begin": 337,
											"end": 343,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 332,
											"end": 335,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 327,
											"end": 330,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 303,
											"end": 344,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "248"
										},
										{
											"begin": 303,
											"end": 344,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 303,
											"end": 344,
											"name": "tag",
											"source": 13,
											"value": "247"
										},
										{
											"begin": 303,
											"end": 344,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 90,
											"end": 350,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 90,
											"end": 350,
											"name": "SWAP4",
											"source": 13
										},
										{
											"begin": 90,
											"end": 350,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 90,
											"end": 350,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 90,
											"end": 350,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 90,
											"end": 350,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 90,
											"end": 350,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 356,
											"end": 495,
											"name": "tag",
											"source": 13,
											"value": "249"
										},
										{
											"begin": 356,
											"end": 495,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 402,
											"end": 407,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 440,
											"end": 446,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 427,
											"end": 447,
											"name": "CALLDATALOAD",
											"source": 13
										},
										{
											"begin": 418,
											"end": 447,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 418,
											"end": 447,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 456,
											"end": 489,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "251"
										},
										{
											"begin": 483,
											"end": 488,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 456,
											"end": 489,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "252"
										},
										{
											"begin": 456,
											"end": 489,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 456,
											"end": 489,
											"name": "tag",
											"source": 13,
											"value": "251"
										},
										{
											"begin": 456,
											"end": 489,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 408,
											"end": 495,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 408,
											"end": 495,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 408,
											"end": 495,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 408,
											"end": 495,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 408,
											"end": 495,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 501,
											"end": 656,
											"name": "tag",
											"source": 13,
											"value": "253"
										},
										{
											"begin": 501,
											"end": 656,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 555,
											"end": 560,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 593,
											"end": 599,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 580,
											"end": 600,
											"name": "CALLDATALOAD",
											"source": 13
										},
										{
											"begin": 571,
											"end": 600,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 571,
											"end": 600,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 609,
											"end": 650,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "255"
										},
										{
											"begin": 644,
											"end": 649,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 609,
											"end": 650,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "256"
										},
										{
											"begin": 609,
											"end": 650,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 609,
											"end": 650,
											"name": "tag",
											"source": 13,
											"value": "255"
										},
										{
											"begin": 609,
											"end": 650,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 561,
											"end": 656,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 561,
											"end": 656,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 561,
											"end": 656,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 561,
											"end": 656,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 561,
											"end": 656,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 662,
											"end": 821,
											"name": "tag",
											"source": 13,
											"value": "257"
										},
										{
											"begin": 662,
											"end": 821,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 727,
											"end": 732,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 758,
											"end": 764,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 752,
											"end": 765,
											"name": "MLOAD",
											"source": 13
										},
										{
											"begin": 743,
											"end": 765,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 743,
											"end": 765,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 774,
											"end": 815,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "259"
										},
										{
											"begin": 809,
											"end": 814,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 774,
											"end": 815,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "256"
										},
										{
											"begin": 774,
											"end": 815,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 774,
											"end": 815,
											"name": "tag",
											"source": 13,
											"value": "259"
										},
										{
											"begin": 774,
											"end": 815,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 733,
											"end": 821,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 733,
											"end": 821,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 733,
											"end": 821,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 733,
											"end": 821,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 733,
											"end": 821,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 827,
											"end": 964,
											"name": "tag",
											"source": 13,
											"value": "260"
										},
										{
											"begin": 827,
											"end": 964,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 881,
											"end": 886,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 912,
											"end": 918,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 906,
											"end": 919,
											"name": "MLOAD",
											"source": 13
										},
										{
											"begin": 897,
											"end": 919,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 897,
											"end": 919,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 928,
											"end": 958,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "262"
										},
										{
											"begin": 952,
											"end": 957,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 928,
											"end": 958,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "263"
										},
										{
											"begin": 928,
											"end": 958,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 928,
											"end": 958,
											"name": "tag",
											"source": 13,
											"value": "262"
										},
										{
											"begin": 928,
											"end": 958,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 887,
											"end": 964,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 887,
											"end": 964,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 887,
											"end": 964,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 887,
											"end": 964,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 887,
											"end": 964,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 983,
											"end": 1254,
											"name": "tag",
											"source": 13,
											"value": "264"
										},
										{
											"begin": 983,
											"end": 1254,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 1038,
											"end": 1043,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 1087,
											"end": 1090,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 1080,
											"end": 1084,
											"name": "PUSH",
											"source": 13,
											"value": "1F"
										},
										{
											"begin": 1072,
											"end": 1078,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 1068,
											"end": 1085,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 1064,
											"end": 1091,
											"name": "SLT",
											"source": 13
										},
										{
											"begin": 1054,
											"end": 1056,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "266"
										},
										{
											"begin": 1054,
											"end": 1056,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 1105,
											"end": 1106,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 1102,
											"end": 1103,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 1095,
											"end": 1107,
											"name": "REVERT",
											"source": 13
										},
										{
											"begin": 1054,
											"end": 1056,
											"name": "tag",
											"source": 13,
											"value": "266"
										},
										{
											"begin": 1054,
											"end": 1056,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 1145,
											"end": 1151,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 1132,
											"end": 1152,
											"name": "CALLDATALOAD",
											"source": 13
										},
										{
											"begin": 1170,
											"end": 1248,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "267"
										},
										{
											"begin": 1244,
											"end": 1247,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 1236,
											"end": 1242,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 1229,
											"end": 1233,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 1221,
											"end": 1227,
											"name": "DUP7",
											"source": 13
										},
										{
											"begin": 1217,
											"end": 1234,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 1170,
											"end": 1248,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "240"
										},
										{
											"begin": 1170,
											"end": 1248,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 1170,
											"end": 1248,
											"name": "tag",
											"source": 13,
											"value": "267"
										},
										{
											"begin": 1170,
											"end": 1248,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 1161,
											"end": 1248,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 1161,
											"end": 1248,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 1044,
											"end": 1254,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 1044,
											"end": 1254,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 1044,
											"end": 1254,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 1044,
											"end": 1254,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 1044,
											"end": 1254,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 1044,
											"end": 1254,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 1301,
											"end": 2828,
											"name": "tag",
											"source": 13,
											"value": "268"
										},
										{
											"begin": 1301,
											"end": 2828,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 1379,
											"end": 1384,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 1423,
											"end": 1429,
											"name": "PUSH",
											"source": 13,
											"value": "100"
										},
										{
											"begin": 1411,
											"end": 1420,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 1406,
											"end": 1409,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 1402,
											"end": 1421,
											"name": "SUB",
											"source": 13
										},
										{
											"begin": 1398,
											"end": 1430,
											"name": "SLT",
											"source": 13
										},
										{
											"begin": 1395,
											"end": 1397,
											"name": "ISZERO",
											"source": 13
										},
										{
											"begin": 1395,
											"end": 1397,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "270"
										},
										{
											"begin": 1395,
											"end": 1397,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 1443,
											"end": 1444,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 1440,
											"end": 1441,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 1433,
											"end": 1445,
											"name": "REVERT",
											"source": 13
										},
										{
											"begin": 1395,
											"end": 1397,
											"name": "tag",
											"source": 13,
											"value": "270"
										},
										{
											"begin": 1395,
											"end": 1397,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 1465,
											"end": 1488,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "271"
										},
										{
											"begin": 1481,
											"end": 1487,
											"name": "PUSH",
											"source": 13,
											"value": "100"
										},
										{
											"begin": 1465,
											"end": 1488,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "245"
										},
										{
											"begin": 1465,
											"end": 1488,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 1465,
											"end": 1488,
											"name": "tag",
											"source": 13,
											"value": "271"
										},
										{
											"begin": 1465,
											"end": 1488,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 1456,
											"end": 1488,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 1456,
											"end": 1488,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 1546,
											"end": 1547,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 1586,
											"end": 1635,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "272"
										},
										{
											"begin": 1631,
											"end": 1634,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 1622,
											"end": 1628,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 1611,
											"end": 1620,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 1607,
											"end": 1629,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 1586,
											"end": 1635,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "273"
										},
										{
											"begin": 1586,
											"end": 1635,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 1586,
											"end": 1635,
											"name": "tag",
											"source": 13,
											"value": "272"
										},
										{
											"begin": 1586,
											"end": 1635,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 1579,
											"end": 1583,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 1572,
											"end": 1577,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 1568,
											"end": 1584,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 1561,
											"end": 1636,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 1498,
											"end": 1647,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 1711,
											"end": 1713,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 1752,
											"end": 1801,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "274"
										},
										{
											"begin": 1797,
											"end": 1800,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 1788,
											"end": 1794,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 1777,
											"end": 1786,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 1773,
											"end": 1795,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 1752,
											"end": 1801,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "249"
										},
										{
											"begin": 1752,
											"end": 1801,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 1752,
											"end": 1801,
											"name": "tag",
											"source": 13,
											"value": "274"
										},
										{
											"begin": 1752,
											"end": 1801,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 1745,
											"end": 1749,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 1738,
											"end": 1743,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 1734,
											"end": 1750,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 1727,
											"end": 1802,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 1657,
											"end": 1813,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 1875,
											"end": 1877,
											"name": "PUSH",
											"source": 13,
											"value": "40"
										},
										{
											"begin": 1916,
											"end": 1965,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "275"
										},
										{
											"begin": 1961,
											"end": 1964,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 1952,
											"end": 1958,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 1941,
											"end": 1950,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 1937,
											"end": 1959,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 1916,
											"end": 1965,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "249"
										},
										{
											"begin": 1916,
											"end": 1965,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 1916,
											"end": 1965,
											"name": "tag",
											"source": 13,
											"value": "275"
										},
										{
											"begin": 1916,
											"end": 1965,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 1909,
											"end": 1913,
											"name": "PUSH",
											"source": 13,
											"value": "40"
										},
										{
											"begin": 1902,
											"end": 1907,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 1898,
											"end": 1914,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 1891,
											"end": 1966,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 1823,
											"end": 1977,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 2042,
											"end": 2044,
											"name": "PUSH",
											"source": 13,
											"value": "60"
										},
										{
											"begin": 2083,
											"end": 2131,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "276"
										},
										{
											"begin": 2127,
											"end": 2130,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 2118,
											"end": 2124,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 2107,
											"end": 2116,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 2103,
											"end": 2125,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 2083,
											"end": 2131,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "277"
										},
										{
											"begin": 2083,
											"end": 2131,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 2083,
											"end": 2131,
											"name": "tag",
											"source": 13,
											"value": "276"
										},
										{
											"begin": 2083,
											"end": 2131,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 2076,
											"end": 2080,
											"name": "PUSH",
											"source": 13,
											"value": "60"
										},
										{
											"begin": 2069,
											"end": 2074,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 2065,
											"end": 2081,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 2058,
											"end": 2132,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 1987,
											"end": 2143,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 2207,
											"end": 2210,
											"name": "PUSH",
											"source": 13,
											"value": "80"
										},
										{
											"begin": 2249,
											"end": 2297,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "278"
										},
										{
											"begin": 2293,
											"end": 2296,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 2284,
											"end": 2290,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 2273,
											"end": 2282,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 2269,
											"end": 2291,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 2249,
											"end": 2297,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "277"
										},
										{
											"begin": 2249,
											"end": 2297,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 2249,
											"end": 2297,
											"name": "tag",
											"source": 13,
											"value": "278"
										},
										{
											"begin": 2249,
											"end": 2297,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 2242,
											"end": 2246,
											"name": "PUSH",
											"source": 13,
											"value": "80"
										},
										{
											"begin": 2235,
											"end": 2240,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 2231,
											"end": 2247,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 2224,
											"end": 2298,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 2153,
											"end": 2309,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 2373,
											"end": 2376,
											"name": "PUSH",
											"source": 13,
											"value": "A0"
										},
										{
											"begin": 2415,
											"end": 2463,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "279"
										},
										{
											"begin": 2459,
											"end": 2462,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 2450,
											"end": 2456,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 2439,
											"end": 2448,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 2435,
											"end": 2457,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 2415,
											"end": 2463,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "277"
										},
										{
											"begin": 2415,
											"end": 2463,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 2415,
											"end": 2463,
											"name": "tag",
											"source": 13,
											"value": "279"
										},
										{
											"begin": 2415,
											"end": 2463,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 2408,
											"end": 2412,
											"name": "PUSH",
											"source": 13,
											"value": "A0"
										},
										{
											"begin": 2401,
											"end": 2406,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 2397,
											"end": 2413,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 2390,
											"end": 2464,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 2319,
											"end": 2475,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 2532,
											"end": 2535,
											"name": "PUSH",
											"source": 13,
											"value": "C0"
										},
										{
											"begin": 2574,
											"end": 2631,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "280"
										},
										{
											"begin": 2627,
											"end": 2630,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 2618,
											"end": 2624,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 2607,
											"end": 2616,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 2603,
											"end": 2625,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 2574,
											"end": 2631,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "253"
										},
										{
											"begin": 2574,
											"end": 2631,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 2574,
											"end": 2631,
											"name": "tag",
											"source": 13,
											"value": "280"
										},
										{
											"begin": 2574,
											"end": 2631,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 2567,
											"end": 2571,
											"name": "PUSH",
											"source": 13,
											"value": "C0"
										},
										{
											"begin": 2560,
											"end": 2565,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 2556,
											"end": 2572,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 2549,
											"end": 2632,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 2485,
											"end": 2643,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 2718,
											"end": 2721,
											"name": "PUSH",
											"source": 13,
											"value": "E0"
										},
										{
											"begin": 2760,
											"end": 2809,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "281"
										},
										{
											"begin": 2805,
											"end": 2808,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 2796,
											"end": 2802,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 2785,
											"end": 2794,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 2781,
											"end": 2803,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 2760,
											"end": 2809,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "249"
										},
										{
											"begin": 2760,
											"end": 2809,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 2760,
											"end": 2809,
											"name": "tag",
											"source": 13,
											"value": "281"
										},
										{
											"begin": 2760,
											"end": 2809,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 2753,
											"end": 2757,
											"name": "PUSH",
											"source": 13,
											"value": "E0"
										},
										{
											"begin": 2746,
											"end": 2751,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 2742,
											"end": 2758,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 2735,
											"end": 2810,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 2653,
											"end": 2821,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 1385,
											"end": 2828,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 1385,
											"end": 2828,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 1385,
											"end": 2828,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 1385,
											"end": 2828,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 1385,
											"end": 2828,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 2834,
											"end": 2971,
											"name": "tag",
											"source": 13,
											"value": "277"
										},
										{
											"begin": 2834,
											"end": 2971,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 2879,
											"end": 2884,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 2917,
											"end": 2923,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 2904,
											"end": 2924,
											"name": "CALLDATALOAD",
											"source": 13
										},
										{
											"begin": 2895,
											"end": 2924,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 2895,
											"end": 2924,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 2933,
											"end": 2965,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "283"
										},
										{
											"begin": 2959,
											"end": 2964,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 2933,
											"end": 2965,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "284"
										},
										{
											"begin": 2933,
											"end": 2965,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 2933,
											"end": 2965,
											"name": "tag",
											"source": 13,
											"value": "283"
										},
										{
											"begin": 2933,
											"end": 2965,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 2885,
											"end": 2971,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 2885,
											"end": 2971,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 2885,
											"end": 2971,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 2885,
											"end": 2971,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 2885,
											"end": 2971,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 2977,
											"end": 3116,
											"name": "tag",
											"source": 13,
											"value": "273"
										},
										{
											"begin": 2977,
											"end": 3116,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 3023,
											"end": 3028,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 3061,
											"end": 3067,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 3048,
											"end": 3068,
											"name": "CALLDATALOAD",
											"source": 13
										},
										{
											"begin": 3039,
											"end": 3068,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 3039,
											"end": 3068,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 3077,
											"end": 3110,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "286"
										},
										{
											"begin": 3104,
											"end": 3109,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 3077,
											"end": 3110,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "287"
										},
										{
											"begin": 3077,
											"end": 3110,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 3077,
											"end": 3110,
											"name": "tag",
											"source": 13,
											"value": "286"
										},
										{
											"begin": 3077,
											"end": 3110,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 3029,
											"end": 3116,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 3029,
											"end": 3116,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 3029,
											"end": 3116,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 3029,
											"end": 3116,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 3029,
											"end": 3116,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 3122,
											"end": 3265,
											"name": "tag",
											"source": 13,
											"value": "288"
										},
										{
											"begin": 3122,
											"end": 3265,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 3179,
											"end": 3184,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 3210,
											"end": 3216,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 3204,
											"end": 3217,
											"name": "MLOAD",
											"source": 13
										},
										{
											"begin": 3195,
											"end": 3217,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 3195,
											"end": 3217,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 3226,
											"end": 3259,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "290"
										},
										{
											"begin": 3253,
											"end": 3258,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 3226,
											"end": 3259,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "287"
										},
										{
											"begin": 3226,
											"end": 3259,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 3226,
											"end": 3259,
											"name": "tag",
											"source": 13,
											"value": "290"
										},
										{
											"begin": 3226,
											"end": 3259,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 3185,
											"end": 3265,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 3185,
											"end": 3265,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 3185,
											"end": 3265,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 3185,
											"end": 3265,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 3185,
											"end": 3265,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 3271,
											"end": 3533,
											"name": "tag",
											"source": 13,
											"value": "41"
										},
										{
											"begin": 3271,
											"end": 3533,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 3330,
											"end": 3336,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 3379,
											"end": 3381,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 3367,
											"end": 3376,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 3358,
											"end": 3365,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 3354,
											"end": 3377,
											"name": "SUB",
											"source": 13
										},
										{
											"begin": 3350,
											"end": 3382,
											"name": "SLT",
											"source": 13
										},
										{
											"begin": 3347,
											"end": 3349,
											"name": "ISZERO",
											"source": 13
										},
										{
											"begin": 3347,
											"end": 3349,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "292"
										},
										{
											"begin": 3347,
											"end": 3349,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 3395,
											"end": 3396,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 3392,
											"end": 3393,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 3385,
											"end": 3397,
											"name": "REVERT",
											"source": 13
										},
										{
											"begin": 3347,
											"end": 3349,
											"name": "tag",
											"source": 13,
											"value": "292"
										},
										{
											"begin": 3347,
											"end": 3349,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 3438,
											"end": 3439,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 3463,
											"end": 3516,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "293"
										},
										{
											"begin": 3508,
											"end": 3515,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 3499,
											"end": 3505,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 3488,
											"end": 3497,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 3484,
											"end": 3506,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 3463,
											"end": 3516,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "249"
										},
										{
											"begin": 3463,
											"end": 3516,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 3463,
											"end": 3516,
											"name": "tag",
											"source": 13,
											"value": "293"
										},
										{
											"begin": 3463,
											"end": 3516,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 3453,
											"end": 3516,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 3453,
											"end": 3516,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 3409,
											"end": 3526,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 3337,
											"end": 3533,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 3337,
											"end": 3533,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 3337,
											"end": 3533,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 3337,
											"end": 3533,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 3337,
											"end": 3533,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 3539,
											"end": 3839,
											"name": "tag",
											"source": 13,
											"value": "160"
										},
										{
											"begin": 3539,
											"end": 3839,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 3617,
											"end": 3623,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 3666,
											"end": 3668,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 3654,
											"end": 3663,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 3645,
											"end": 3652,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 3641,
											"end": 3664,
											"name": "SUB",
											"source": 13
										},
										{
											"begin": 3637,
											"end": 3669,
											"name": "SLT",
											"source": 13
										},
										{
											"begin": 3634,
											"end": 3636,
											"name": "ISZERO",
											"source": 13
										},
										{
											"begin": 3634,
											"end": 3636,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "295"
										},
										{
											"begin": 3634,
											"end": 3636,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 3682,
											"end": 3683,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 3679,
											"end": 3680,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 3672,
											"end": 3684,
											"name": "REVERT",
											"source": 13
										},
										{
											"begin": 3634,
											"end": 3636,
											"name": "tag",
											"source": 13,
											"value": "295"
										},
										{
											"begin": 3634,
											"end": 3636,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 3725,
											"end": 3726,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 3750,
											"end": 3822,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "296"
										},
										{
											"begin": 3814,
											"end": 3821,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 3805,
											"end": 3811,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 3794,
											"end": 3803,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 3790,
											"end": 3812,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 3750,
											"end": 3822,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "257"
										},
										{
											"begin": 3750,
											"end": 3822,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 3750,
											"end": 3822,
											"name": "tag",
											"source": 13,
											"value": "296"
										},
										{
											"begin": 3750,
											"end": 3822,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 3740,
											"end": 3822,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 3740,
											"end": 3822,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 3696,
											"end": 3832,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 3624,
											"end": 3839,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 3624,
											"end": 3839,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 3624,
											"end": 3839,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 3624,
											"end": 3839,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 3624,
											"end": 3839,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 3845,
											"end": 4397,
											"name": "tag",
											"source": 13,
											"value": "66"
										},
										{
											"begin": 3845,
											"end": 4397,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 3922,
											"end": 3928,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 3930,
											"end": 3936,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 3938,
											"end": 3944,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 3987,
											"end": 3989,
											"name": "PUSH",
											"source": 13,
											"value": "60"
										},
										{
											"begin": 3975,
											"end": 3984,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 3966,
											"end": 3973,
											"name": "DUP7",
											"source": 13
										},
										{
											"begin": 3962,
											"end": 3985,
											"name": "SUB",
											"source": 13
										},
										{
											"begin": 3958,
											"end": 3990,
											"name": "SLT",
											"source": 13
										},
										{
											"begin": 3955,
											"end": 3957,
											"name": "ISZERO",
											"source": 13
										},
										{
											"begin": 3955,
											"end": 3957,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "298"
										},
										{
											"begin": 3955,
											"end": 3957,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 4003,
											"end": 4004,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 4000,
											"end": 4001,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 3993,
											"end": 4005,
											"name": "REVERT",
											"source": 13
										},
										{
											"begin": 3955,
											"end": 3957,
											"name": "tag",
											"source": 13,
											"value": "298"
										},
										{
											"begin": 3955,
											"end": 3957,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 4046,
											"end": 4047,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 4071,
											"end": 4124,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "299"
										},
										{
											"begin": 4116,
											"end": 4123,
											"name": "DUP7",
											"source": 13
										},
										{
											"begin": 4107,
											"end": 4113,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 4096,
											"end": 4105,
											"name": "DUP8",
											"source": 13
										},
										{
											"begin": 4092,
											"end": 4114,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 4071,
											"end": 4124,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "249"
										},
										{
											"begin": 4071,
											"end": 4124,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 4071,
											"end": 4124,
											"name": "tag",
											"source": 13,
											"value": "299"
										},
										{
											"begin": 4071,
											"end": 4124,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 4061,
											"end": 4124,
											"name": "SWAP4",
											"source": 13
										},
										{
											"begin": 4061,
											"end": 4124,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 4017,
											"end": 4134,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 4173,
											"end": 4175,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 4199,
											"end": 4252,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "300"
										},
										{
											"begin": 4244,
											"end": 4251,
											"name": "DUP7",
											"source": 13
										},
										{
											"begin": 4235,
											"end": 4241,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 4224,
											"end": 4233,
											"name": "DUP8",
											"source": 13
										},
										{
											"begin": 4220,
											"end": 4242,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 4199,
											"end": 4252,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "249"
										},
										{
											"begin": 4199,
											"end": 4252,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 4199,
											"end": 4252,
											"name": "tag",
											"source": 13,
											"value": "300"
										},
										{
											"begin": 4199,
											"end": 4252,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 4189,
											"end": 4252,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 4189,
											"end": 4252,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 4144,
											"end": 4262,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 4301,
											"end": 4303,
											"name": "PUSH",
											"source": 13,
											"value": "40"
										},
										{
											"begin": 4327,
											"end": 4380,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "301"
										},
										{
											"begin": 4372,
											"end": 4379,
											"name": "DUP7",
											"source": 13
										},
										{
											"begin": 4363,
											"end": 4369,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 4352,
											"end": 4361,
											"name": "DUP8",
											"source": 13
										},
										{
											"begin": 4348,
											"end": 4370,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 4327,
											"end": 4380,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "273"
										},
										{
											"begin": 4327,
											"end": 4380,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 4327,
											"end": 4380,
											"name": "tag",
											"source": 13,
											"value": "301"
										},
										{
											"begin": 4327,
											"end": 4380,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 4317,
											"end": 4380,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 4317,
											"end": 4380,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 4272,
											"end": 4390,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 3945,
											"end": 4397,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 3945,
											"end": 4397,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 3945,
											"end": 4397,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 3945,
											"end": 4397,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 3945,
											"end": 4397,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 3945,
											"end": 4397,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 4403,
											"end": 4808,
											"name": "tag",
											"source": 13,
											"value": "36"
										},
										{
											"begin": 4403,
											"end": 4808,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 4470,
											"end": 4476,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 4478,
											"end": 4484,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 4527,
											"end": 4529,
											"name": "PUSH",
											"source": 13,
											"value": "40"
										},
										{
											"begin": 4515,
											"end": 4524,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 4506,
											"end": 4513,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 4502,
											"end": 4525,
											"name": "SUB",
											"source": 13
										},
										{
											"begin": 4498,
											"end": 4530,
											"name": "SLT",
											"source": 13
										},
										{
											"begin": 4495,
											"end": 4497,
											"name": "ISZERO",
											"source": 13
										},
										{
											"begin": 4495,
											"end": 4497,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "303"
										},
										{
											"begin": 4495,
											"end": 4497,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 4543,
											"end": 4544,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 4540,
											"end": 4541,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 4533,
											"end": 4545,
											"name": "REVERT",
											"source": 13
										},
										{
											"begin": 4495,
											"end": 4497,
											"name": "tag",
											"source": 13,
											"value": "303"
										},
										{
											"begin": 4495,
											"end": 4497,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 4586,
											"end": 4587,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 4611,
											"end": 4664,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "304"
										},
										{
											"begin": 4656,
											"end": 4663,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 4647,
											"end": 4653,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 4636,
											"end": 4645,
											"name": "DUP7",
											"source": 13
										},
										{
											"begin": 4632,
											"end": 4654,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 4611,
											"end": 4664,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "249"
										},
										{
											"begin": 4611,
											"end": 4664,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 4611,
											"end": 4664,
											"name": "tag",
											"source": 13,
											"value": "304"
										},
										{
											"begin": 4611,
											"end": 4664,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 4601,
											"end": 4664,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 4601,
											"end": 4664,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 4557,
											"end": 4674,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 4713,
											"end": 4715,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 4739,
											"end": 4791,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "305"
										},
										{
											"begin": 4783,
											"end": 4790,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 4774,
											"end": 4780,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 4763,
											"end": 4772,
											"name": "DUP7",
											"source": 13
										},
										{
											"begin": 4759,
											"end": 4781,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 4739,
											"end": 4791,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "277"
										},
										{
											"begin": 4739,
											"end": 4791,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 4739,
											"end": 4791,
											"name": "tag",
											"source": 13,
											"value": "305"
										},
										{
											"begin": 4739,
											"end": 4791,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 4729,
											"end": 4791,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 4729,
											"end": 4791,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 4684,
											"end": 4801,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 4485,
											"end": 4808,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 4485,
											"end": 4808,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 4485,
											"end": 4808,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 4485,
											"end": 4808,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 4485,
											"end": 4808,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 4485,
											"end": 4808,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 4814,
											"end": 5092,
											"name": "tag",
											"source": 13,
											"value": "167"
										},
										{
											"begin": 4814,
											"end": 5092,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 4881,
											"end": 4887,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 4930,
											"end": 4932,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 4918,
											"end": 4927,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 4909,
											"end": 4916,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 4905,
											"end": 4928,
											"name": "SUB",
											"source": 13
										},
										{
											"begin": 4901,
											"end": 4933,
											"name": "SLT",
											"source": 13
										},
										{
											"begin": 4898,
											"end": 4900,
											"name": "ISZERO",
											"source": 13
										},
										{
											"begin": 4898,
											"end": 4900,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "307"
										},
										{
											"begin": 4898,
											"end": 4900,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 4946,
											"end": 4947,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 4943,
											"end": 4944,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 4936,
											"end": 4948,
											"name": "REVERT",
											"source": 13
										},
										{
											"begin": 4898,
											"end": 4900,
											"name": "tag",
											"source": 13,
											"value": "307"
										},
										{
											"begin": 4898,
											"end": 4900,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 4989,
											"end": 4990,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 5014,
											"end": 5075,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "308"
										},
										{
											"begin": 5067,
											"end": 5074,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 5058,
											"end": 5064,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 5047,
											"end": 5056,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 5043,
											"end": 5065,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 5014,
											"end": 5075,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "260"
										},
										{
											"begin": 5014,
											"end": 5075,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 5014,
											"end": 5075,
											"name": "tag",
											"source": 13,
											"value": "308"
										},
										{
											"begin": 5014,
											"end": 5075,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 5004,
											"end": 5075,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 5004,
											"end": 5075,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 4960,
											"end": 5085,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 4888,
											"end": 5092,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 4888,
											"end": 5092,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 4888,
											"end": 5092,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 4888,
											"end": 5092,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 4888,
											"end": 5092,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 5098,
											"end": 5419,
											"name": "tag",
											"source": 13,
											"value": "50"
										},
										{
											"begin": 5098,
											"end": 5419,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 5186,
											"end": 5192,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 5235,
											"end": 5238,
											"name": "PUSH",
											"source": 13,
											"value": "100"
										},
										{
											"begin": 5223,
											"end": 5232,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 5214,
											"end": 5221,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 5210,
											"end": 5233,
											"name": "SUB",
											"source": 13
										},
										{
											"begin": 5206,
											"end": 5239,
											"name": "SLT",
											"source": 13
										},
										{
											"begin": 5203,
											"end": 5205,
											"name": "ISZERO",
											"source": 13
										},
										{
											"begin": 5203,
											"end": 5205,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "310"
										},
										{
											"begin": 5203,
											"end": 5205,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 5252,
											"end": 5253,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 5249,
											"end": 5250,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 5242,
											"end": 5254,
											"name": "REVERT",
											"source": 13
										},
										{
											"begin": 5203,
											"end": 5205,
											"name": "tag",
											"source": 13,
											"value": "310"
										},
										{
											"begin": 5203,
											"end": 5205,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 5295,
											"end": 5296,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 5320,
											"end": 5402,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "311"
										},
										{
											"begin": 5394,
											"end": 5401,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 5385,
											"end": 5391,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 5374,
											"end": 5383,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 5370,
											"end": 5392,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 5320,
											"end": 5402,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "268"
										},
										{
											"begin": 5320,
											"end": 5402,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 5320,
											"end": 5402,
											"name": "tag",
											"source": 13,
											"value": "311"
										},
										{
											"begin": 5320,
											"end": 5402,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 5310,
											"end": 5402,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 5310,
											"end": 5402,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 5266,
											"end": 5412,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 5193,
											"end": 5419,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 5193,
											"end": 5419,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 5193,
											"end": 5419,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 5193,
											"end": 5419,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 5193,
											"end": 5419,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 5425,
											"end": 5975,
											"name": "tag",
											"source": 13,
											"value": "29"
										},
										{
											"begin": 5425,
											"end": 5975,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 5501,
											"end": 5507,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 5509,
											"end": 5515,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 5517,
											"end": 5523,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 5566,
											"end": 5568,
											"name": "PUSH",
											"source": 13,
											"value": "60"
										},
										{
											"begin": 5554,
											"end": 5563,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 5545,
											"end": 5552,
											"name": "DUP7",
											"source": 13
										},
										{
											"begin": 5541,
											"end": 5564,
											"name": "SUB",
											"source": 13
										},
										{
											"begin": 5537,
											"end": 5569,
											"name": "SLT",
											"source": 13
										},
										{
											"begin": 5534,
											"end": 5536,
											"name": "ISZERO",
											"source": 13
										},
										{
											"begin": 5534,
											"end": 5536,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "313"
										},
										{
											"begin": 5534,
											"end": 5536,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 5582,
											"end": 5583,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 5579,
											"end": 5580,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 5572,
											"end": 5584,
											"name": "REVERT",
											"source": 13
										},
										{
											"begin": 5534,
											"end": 5536,
											"name": "tag",
											"source": 13,
											"value": "313"
										},
										{
											"begin": 5534,
											"end": 5536,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 5625,
											"end": 5626,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 5650,
											"end": 5702,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "314"
										},
										{
											"begin": 5694,
											"end": 5701,
											"name": "DUP7",
											"source": 13
										},
										{
											"begin": 5685,
											"end": 5691,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 5674,
											"end": 5683,
											"name": "DUP8",
											"source": 13
										},
										{
											"begin": 5670,
											"end": 5692,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 5650,
											"end": 5702,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "277"
										},
										{
											"begin": 5650,
											"end": 5702,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 5650,
											"end": 5702,
											"name": "tag",
											"source": 13,
											"value": "314"
										},
										{
											"begin": 5650,
											"end": 5702,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 5640,
											"end": 5702,
											"name": "SWAP4",
											"source": 13
										},
										{
											"begin": 5640,
											"end": 5702,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 5596,
											"end": 5712,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 5751,
											"end": 5753,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 5777,
											"end": 5830,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "315"
										},
										{
											"begin": 5822,
											"end": 5829,
											"name": "DUP7",
											"source": 13
										},
										{
											"begin": 5813,
											"end": 5819,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 5802,
											"end": 5811,
											"name": "DUP8",
											"source": 13
										},
										{
											"begin": 5798,
											"end": 5820,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 5777,
											"end": 5830,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "249"
										},
										{
											"begin": 5777,
											"end": 5830,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 5777,
											"end": 5830,
											"name": "tag",
											"source": 13,
											"value": "315"
										},
										{
											"begin": 5777,
											"end": 5830,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 5767,
											"end": 5830,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 5767,
											"end": 5830,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 5722,
											"end": 5840,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 5879,
											"end": 5881,
											"name": "PUSH",
											"source": 13,
											"value": "40"
										},
										{
											"begin": 5905,
											"end": 5958,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "316"
										},
										{
											"begin": 5950,
											"end": 5957,
											"name": "DUP7",
											"source": 13
										},
										{
											"begin": 5941,
											"end": 5947,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 5930,
											"end": 5939,
											"name": "DUP8",
											"source": 13
										},
										{
											"begin": 5926,
											"end": 5948,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 5905,
											"end": 5958,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "249"
										},
										{
											"begin": 5905,
											"end": 5958,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 5905,
											"end": 5958,
											"name": "tag",
											"source": 13,
											"value": "316"
										},
										{
											"begin": 5905,
											"end": 5958,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 5895,
											"end": 5958,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 5895,
											"end": 5958,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 5850,
											"end": 5968,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 5524,
											"end": 5975,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 5524,
											"end": 5975,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 5524,
											"end": 5975,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 5524,
											"end": 5975,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 5524,
											"end": 5975,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 5524,
											"end": 5975,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 5981,
											"end": 6531,
											"name": "tag",
											"source": 13,
											"value": "24"
										},
										{
											"begin": 5981,
											"end": 6531,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 6057,
											"end": 6063,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 6065,
											"end": 6071,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 6073,
											"end": 6079,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 6122,
											"end": 6124,
											"name": "PUSH",
											"source": 13,
											"value": "60"
										},
										{
											"begin": 6110,
											"end": 6119,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 6101,
											"end": 6108,
											"name": "DUP7",
											"source": 13
										},
										{
											"begin": 6097,
											"end": 6120,
											"name": "SUB",
											"source": 13
										},
										{
											"begin": 6093,
											"end": 6125,
											"name": "SLT",
											"source": 13
										},
										{
											"begin": 6090,
											"end": 6092,
											"name": "ISZERO",
											"source": 13
										},
										{
											"begin": 6090,
											"end": 6092,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "318"
										},
										{
											"begin": 6090,
											"end": 6092,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 6138,
											"end": 6139,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 6135,
											"end": 6136,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 6128,
											"end": 6140,
											"name": "REVERT",
											"source": 13
										},
										{
											"begin": 6090,
											"end": 6092,
											"name": "tag",
											"source": 13,
											"value": "318"
										},
										{
											"begin": 6090,
											"end": 6092,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 6181,
											"end": 6182,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 6206,
											"end": 6258,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "319"
										},
										{
											"begin": 6250,
											"end": 6257,
											"name": "DUP7",
											"source": 13
										},
										{
											"begin": 6241,
											"end": 6247,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 6230,
											"end": 6239,
											"name": "DUP8",
											"source": 13
										},
										{
											"begin": 6226,
											"end": 6248,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 6206,
											"end": 6258,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "277"
										},
										{
											"begin": 6206,
											"end": 6258,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 6206,
											"end": 6258,
											"name": "tag",
											"source": 13,
											"value": "319"
										},
										{
											"begin": 6206,
											"end": 6258,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 6196,
											"end": 6258,
											"name": "SWAP4",
											"source": 13
										},
										{
											"begin": 6196,
											"end": 6258,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 6152,
											"end": 6268,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 6307,
											"end": 6309,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 6333,
											"end": 6386,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "320"
										},
										{
											"begin": 6378,
											"end": 6385,
											"name": "DUP7",
											"source": 13
										},
										{
											"begin": 6369,
											"end": 6375,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 6358,
											"end": 6367,
											"name": "DUP8",
											"source": 13
										},
										{
											"begin": 6354,
											"end": 6376,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 6333,
											"end": 6386,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "249"
										},
										{
											"begin": 6333,
											"end": 6386,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 6333,
											"end": 6386,
											"name": "tag",
											"source": 13,
											"value": "320"
										},
										{
											"begin": 6333,
											"end": 6386,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 6323,
											"end": 6386,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 6323,
											"end": 6386,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 6278,
											"end": 6396,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 6435,
											"end": 6437,
											"name": "PUSH",
											"source": 13,
											"value": "40"
										},
										{
											"begin": 6461,
											"end": 6514,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "321"
										},
										{
											"begin": 6506,
											"end": 6513,
											"name": "DUP7",
											"source": 13
										},
										{
											"begin": 6497,
											"end": 6503,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 6486,
											"end": 6495,
											"name": "DUP8",
											"source": 13
										},
										{
											"begin": 6482,
											"end": 6504,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 6461,
											"end": 6514,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "273"
										},
										{
											"begin": 6461,
											"end": 6514,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 6461,
											"end": 6514,
											"name": "tag",
											"source": 13,
											"value": "321"
										},
										{
											"begin": 6461,
											"end": 6514,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 6451,
											"end": 6514,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 6451,
											"end": 6514,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 6406,
											"end": 6524,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 6080,
											"end": 6531,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 6080,
											"end": 6531,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 6080,
											"end": 6531,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 6080,
											"end": 6531,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 6080,
											"end": 6531,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 6080,
											"end": 6531,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 6537,
											"end": 7747,
											"name": "tag",
											"source": 13,
											"value": "62"
										},
										{
											"begin": 6537,
											"end": 7747,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 6658,
											"end": 6664,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 6666,
											"end": 6672,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 6674,
											"end": 6680,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 6682,
											"end": 6688,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 6690,
											"end": 6696,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 6698,
											"end": 6704,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 6747,
											"end": 6750,
											"name": "PUSH",
											"source": 13,
											"value": "C0"
										},
										{
											"begin": 6735,
											"end": 6744,
											"name": "DUP8",
											"source": 13
										},
										{
											"begin": 6726,
											"end": 6733,
											"name": "DUP10",
											"source": 13
										},
										{
											"begin": 6722,
											"end": 6745,
											"name": "SUB",
											"source": 13
										},
										{
											"begin": 6718,
											"end": 6751,
											"name": "SLT",
											"source": 13
										},
										{
											"begin": 6715,
											"end": 6717,
											"name": "ISZERO",
											"source": 13
										},
										{
											"begin": 6715,
											"end": 6717,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "323"
										},
										{
											"begin": 6715,
											"end": 6717,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 6764,
											"end": 6765,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 6761,
											"end": 6762,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 6754,
											"end": 6766,
											"name": "REVERT",
											"source": 13
										},
										{
											"begin": 6715,
											"end": 6717,
											"name": "tag",
											"source": 13,
											"value": "323"
										},
										{
											"begin": 6715,
											"end": 6717,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 6807,
											"end": 6808,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 6832,
											"end": 6884,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "324"
										},
										{
											"begin": 6876,
											"end": 6883,
											"name": "DUP10",
											"source": 13
										},
										{
											"begin": 6867,
											"end": 6873,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 6856,
											"end": 6865,
											"name": "DUP11",
											"source": 13
										},
										{
											"begin": 6852,
											"end": 6874,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 6832,
											"end": 6884,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "277"
										},
										{
											"begin": 6832,
											"end": 6884,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 6832,
											"end": 6884,
											"name": "tag",
											"source": 13,
											"value": "324"
										},
										{
											"begin": 6832,
											"end": 6884,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 6822,
											"end": 6884,
											"name": "SWAP7",
											"source": 13
										},
										{
											"begin": 6822,
											"end": 6884,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 6778,
											"end": 6894,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 6961,
											"end": 6963,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 6950,
											"end": 6959,
											"name": "DUP8",
											"source": 13
										},
										{
											"begin": 6946,
											"end": 6964,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 6933,
											"end": 6965,
											"name": "CALLDATALOAD",
											"source": 13
										},
										{
											"begin": 6992,
											"end": 7010,
											"name": "PUSH",
											"source": 13,
											"value": "FFFFFFFFFFFFFFFF"
										},
										{
											"begin": 6984,
											"end": 6990,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 6981,
											"end": 7011,
											"name": "GT",
											"source": 13
										},
										{
											"begin": 6978,
											"end": 6980,
											"name": "ISZERO",
											"source": 13
										},
										{
											"begin": 6978,
											"end": 6980,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "325"
										},
										{
											"begin": 6978,
											"end": 6980,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 7024,
											"end": 7025,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 7021,
											"end": 7022,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 7014,
											"end": 7026,
											"name": "REVERT",
											"source": 13
										},
										{
											"begin": 6978,
											"end": 6980,
											"name": "tag",
											"source": 13,
											"value": "325"
										},
										{
											"begin": 6978,
											"end": 6980,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 7052,
											"end": 7114,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "326"
										},
										{
											"begin": 7106,
											"end": 7113,
											"name": "DUP10",
											"source": 13
										},
										{
											"begin": 7097,
											"end": 7103,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 7086,
											"end": 7095,
											"name": "DUP11",
											"source": 13
										},
										{
											"begin": 7082,
											"end": 7104,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 7052,
											"end": 7114,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "264"
										},
										{
											"begin": 7052,
											"end": 7114,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 7052,
											"end": 7114,
											"name": "tag",
											"source": 13,
											"value": "326"
										},
										{
											"begin": 7052,
											"end": 7114,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 7042,
											"end": 7114,
											"name": "SWAP6",
											"source": 13
										},
										{
											"begin": 7042,
											"end": 7114,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 6904,
											"end": 7124,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 7163,
											"end": 7165,
											"name": "PUSH",
											"source": 13,
											"value": "40"
										},
										{
											"begin": 7189,
											"end": 7242,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "327"
										},
										{
											"begin": 7234,
											"end": 7241,
											"name": "DUP10",
											"source": 13
										},
										{
											"begin": 7225,
											"end": 7231,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 7214,
											"end": 7223,
											"name": "DUP11",
											"source": 13
										},
										{
											"begin": 7210,
											"end": 7232,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 7189,
											"end": 7242,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "273"
										},
										{
											"begin": 7189,
											"end": 7242,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 7189,
											"end": 7242,
											"name": "tag",
											"source": 13,
											"value": "327"
										},
										{
											"begin": 7189,
											"end": 7242,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 7179,
											"end": 7242,
											"name": "SWAP5",
											"source": 13
										},
										{
											"begin": 7179,
											"end": 7242,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 7134,
											"end": 7252,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 7291,
											"end": 7293,
											"name": "PUSH",
											"source": 13,
											"value": "60"
										},
										{
											"begin": 7317,
											"end": 7370,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "328"
										},
										{
											"begin": 7362,
											"end": 7369,
											"name": "DUP10",
											"source": 13
										},
										{
											"begin": 7353,
											"end": 7359,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 7342,
											"end": 7351,
											"name": "DUP11",
											"source": 13
										},
										{
											"begin": 7338,
											"end": 7360,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 7317,
											"end": 7370,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "249"
										},
										{
											"begin": 7317,
											"end": 7370,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 7317,
											"end": 7370,
											"name": "tag",
											"source": 13,
											"value": "328"
										},
										{
											"begin": 7317,
											"end": 7370,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 7307,
											"end": 7370,
											"name": "SWAP4",
											"source": 13
										},
										{
											"begin": 7307,
											"end": 7370,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 7262,
											"end": 7380,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 7419,
											"end": 7422,
											"name": "PUSH",
											"source": 13,
											"value": "80"
										},
										{
											"begin": 7446,
											"end": 7499,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "329"
										},
										{
											"begin": 7491,
											"end": 7498,
											"name": "DUP10",
											"source": 13
										},
										{
											"begin": 7482,
											"end": 7488,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 7471,
											"end": 7480,
											"name": "DUP11",
											"source": 13
										},
										{
											"begin": 7467,
											"end": 7489,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 7446,
											"end": 7499,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "273"
										},
										{
											"begin": 7446,
											"end": 7499,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 7446,
											"end": 7499,
											"name": "tag",
											"source": 13,
											"value": "329"
										},
										{
											"begin": 7446,
											"end": 7499,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 7436,
											"end": 7499,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 7436,
											"end": 7499,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 7390,
											"end": 7509,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 7576,
											"end": 7579,
											"name": "PUSH",
											"source": 13,
											"value": "A0"
										},
										{
											"begin": 7565,
											"end": 7574,
											"name": "DUP8",
											"source": 13
										},
										{
											"begin": 7561,
											"end": 7580,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 7548,
											"end": 7581,
											"name": "CALLDATALOAD",
											"source": 13
										},
										{
											"begin": 7608,
											"end": 7626,
											"name": "PUSH",
											"source": 13,
											"value": "FFFFFFFFFFFFFFFF"
										},
										{
											"begin": 7600,
											"end": 7606,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 7597,
											"end": 7627,
											"name": "GT",
											"source": 13
										},
										{
											"begin": 7594,
											"end": 7596,
											"name": "ISZERO",
											"source": 13
										},
										{
											"begin": 7594,
											"end": 7596,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "330"
										},
										{
											"begin": 7594,
											"end": 7596,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 7640,
											"end": 7641,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 7637,
											"end": 7638,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 7630,
											"end": 7642,
											"name": "REVERT",
											"source": 13
										},
										{
											"begin": 7594,
											"end": 7596,
											"name": "tag",
											"source": 13,
											"value": "330"
										},
										{
											"begin": 7594,
											"end": 7596,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 7668,
											"end": 7730,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "331"
										},
										{
											"begin": 7722,
											"end": 7729,
											"name": "DUP10",
											"source": 13
										},
										{
											"begin": 7713,
											"end": 7719,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 7702,
											"end": 7711,
											"name": "DUP11",
											"source": 13
										},
										{
											"begin": 7698,
											"end": 7720,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 7668,
											"end": 7730,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "264"
										},
										{
											"begin": 7668,
											"end": 7730,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 7668,
											"end": 7730,
											"name": "tag",
											"source": 13,
											"value": "331"
										},
										{
											"begin": 7668,
											"end": 7730,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 7658,
											"end": 7730,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 7658,
											"end": 7730,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 7519,
											"end": 7740,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 6705,
											"end": 7747,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 6705,
											"end": 7747,
											"name": "SWAP6",
											"source": 13
										},
										{
											"begin": 6705,
											"end": 7747,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 6705,
											"end": 7747,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 6705,
											"end": 7747,
											"name": "SWAP6",
											"source": 13
										},
										{
											"begin": 6705,
											"end": 7747,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 6705,
											"end": 7747,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 6705,
											"end": 7747,
											"name": "SWAP6",
											"source": 13
										},
										{
											"begin": 6705,
											"end": 7747,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 7753,
											"end": 8015,
											"name": "tag",
											"source": 13,
											"value": "19"
										},
										{
											"begin": 7753,
											"end": 8015,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 7812,
											"end": 7818,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 7861,
											"end": 7863,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 7849,
											"end": 7858,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 7840,
											"end": 7847,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 7836,
											"end": 7859,
											"name": "SUB",
											"source": 13
										},
										{
											"begin": 7832,
											"end": 7864,
											"name": "SLT",
											"source": 13
										},
										{
											"begin": 7829,
											"end": 7831,
											"name": "ISZERO",
											"source": 13
										},
										{
											"begin": 7829,
											"end": 7831,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "333"
										},
										{
											"begin": 7829,
											"end": 7831,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 7877,
											"end": 7878,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 7874,
											"end": 7875,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 7867,
											"end": 7879,
											"name": "REVERT",
											"source": 13
										},
										{
											"begin": 7829,
											"end": 7831,
											"name": "tag",
											"source": 13,
											"value": "333"
										},
										{
											"begin": 7829,
											"end": 7831,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 7920,
											"end": 7921,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 7945,
											"end": 7998,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "334"
										},
										{
											"begin": 7990,
											"end": 7997,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 7981,
											"end": 7987,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 7970,
											"end": 7979,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 7966,
											"end": 7988,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 7945,
											"end": 7998,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "273"
										},
										{
											"begin": 7945,
											"end": 7998,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 7945,
											"end": 7998,
											"name": "tag",
											"source": 13,
											"value": "334"
										},
										{
											"begin": 7945,
											"end": 7998,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 7935,
											"end": 7998,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 7935,
											"end": 7998,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 7891,
											"end": 8008,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 7819,
											"end": 8015,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 7819,
											"end": 8015,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 7819,
											"end": 8015,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 7819,
											"end": 8015,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 7819,
											"end": 8015,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 8021,
											"end": 8305,
											"name": "tag",
											"source": 13,
											"value": "197"
										},
										{
											"begin": 8021,
											"end": 8305,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 8091,
											"end": 8097,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 8140,
											"end": 8142,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 8128,
											"end": 8137,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 8119,
											"end": 8126,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 8115,
											"end": 8138,
											"name": "SUB",
											"source": 13
										},
										{
											"begin": 8111,
											"end": 8143,
											"name": "SLT",
											"source": 13
										},
										{
											"begin": 8108,
											"end": 8110,
											"name": "ISZERO",
											"source": 13
										},
										{
											"begin": 8108,
											"end": 8110,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "336"
										},
										{
											"begin": 8108,
											"end": 8110,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 8156,
											"end": 8157,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 8153,
											"end": 8154,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 8146,
											"end": 8158,
											"name": "REVERT",
											"source": 13
										},
										{
											"begin": 8108,
											"end": 8110,
											"name": "tag",
											"source": 13,
											"value": "336"
										},
										{
											"begin": 8108,
											"end": 8110,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 8199,
											"end": 8200,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 8224,
											"end": 8288,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "337"
										},
										{
											"begin": 8280,
											"end": 8287,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 8271,
											"end": 8277,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 8260,
											"end": 8269,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 8256,
											"end": 8278,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 8224,
											"end": 8288,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "288"
										},
										{
											"begin": 8224,
											"end": 8288,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 8224,
											"end": 8288,
											"name": "tag",
											"source": 13,
											"value": "337"
										},
										{
											"begin": 8224,
											"end": 8288,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 8214,
											"end": 8288,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 8214,
											"end": 8288,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 8170,
											"end": 8298,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 8098,
											"end": 8305,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 8098,
											"end": 8305,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 8098,
											"end": 8305,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 8098,
											"end": 8305,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 8098,
											"end": 8305,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 8311,
											"end": 8751,
											"name": "tag",
											"source": 13,
											"value": "88"
										},
										{
											"begin": 8311,
											"end": 8751,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 8390,
											"end": 8396,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 8398,
											"end": 8404,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 8447,
											"end": 8449,
											"name": "PUSH",
											"source": 13,
											"value": "40"
										},
										{
											"begin": 8435,
											"end": 8444,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 8426,
											"end": 8433,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 8422,
											"end": 8445,
											"name": "SUB",
											"source": 13
										},
										{
											"begin": 8418,
											"end": 8450,
											"name": "SLT",
											"source": 13
										},
										{
											"begin": 8415,
											"end": 8417,
											"name": "ISZERO",
											"source": 13
										},
										{
											"begin": 8415,
											"end": 8417,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "339"
										},
										{
											"begin": 8415,
											"end": 8417,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 8463,
											"end": 8464,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 8460,
											"end": 8461,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 8453,
											"end": 8465,
											"name": "REVERT",
											"source": 13
										},
										{
											"begin": 8415,
											"end": 8417,
											"name": "tag",
											"source": 13,
											"value": "339"
										},
										{
											"begin": 8415,
											"end": 8417,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 8506,
											"end": 8507,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 8531,
											"end": 8595,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "340"
										},
										{
											"begin": 8587,
											"end": 8594,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 8578,
											"end": 8584,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 8567,
											"end": 8576,
											"name": "DUP7",
											"source": 13
										},
										{
											"begin": 8563,
											"end": 8585,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 8531,
											"end": 8595,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "288"
										},
										{
											"begin": 8531,
											"end": 8595,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 8531,
											"end": 8595,
											"name": "tag",
											"source": 13,
											"value": "340"
										},
										{
											"begin": 8531,
											"end": 8595,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 8521,
											"end": 8595,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 8521,
											"end": 8595,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 8477,
											"end": 8605,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 8644,
											"end": 8646,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 8670,
											"end": 8734,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "341"
										},
										{
											"begin": 8726,
											"end": 8733,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 8717,
											"end": 8723,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 8706,
											"end": 8715,
											"name": "DUP7",
											"source": 13
										},
										{
											"begin": 8702,
											"end": 8724,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 8670,
											"end": 8734,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "288"
										},
										{
											"begin": 8670,
											"end": 8734,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 8670,
											"end": 8734,
											"name": "tag",
											"source": 13,
											"value": "341"
										},
										{
											"begin": 8670,
											"end": 8734,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 8660,
											"end": 8734,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 8660,
											"end": 8734,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 8615,
											"end": 8744,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 8405,
											"end": 8751,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 8405,
											"end": 8751,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 8405,
											"end": 8751,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 8405,
											"end": 8751,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 8405,
											"end": 8751,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 8405,
											"end": 8751,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 8757,
											"end": 8904,
											"name": "tag",
											"source": 13,
											"value": "342"
										},
										{
											"begin": 8757,
											"end": 8904,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 8852,
											"end": 8897,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "344"
										},
										{
											"begin": 8891,
											"end": 8896,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 8852,
											"end": 8897,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "345"
										},
										{
											"begin": 8852,
											"end": 8897,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 8852,
											"end": 8897,
											"name": "tag",
											"source": 13,
											"value": "344"
										},
										{
											"begin": 8852,
											"end": 8897,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 8847,
											"end": 8850,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 8840,
											"end": 8898,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 8830,
											"end": 8904,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 8830,
											"end": 8904,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 8830,
											"end": 8904,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 8910,
											"end": 9052,
											"name": "tag",
											"source": 13,
											"value": "346"
										},
										{
											"begin": 8910,
											"end": 9052,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 9013,
											"end": 9045,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "348"
										},
										{
											"begin": 9039,
											"end": 9044,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 9013,
											"end": 9045,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "349"
										},
										{
											"begin": 9013,
											"end": 9045,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 9013,
											"end": 9045,
											"name": "tag",
											"source": 13,
											"value": "348"
										},
										{
											"begin": 9013,
											"end": 9045,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 9008,
											"end": 9011,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 9001,
											"end": 9046,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 8991,
											"end": 9052,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 8991,
											"end": 9052,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 8991,
											"end": 9052,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 9058,
											"end": 9176,
											"name": "tag",
											"source": 13,
											"value": "350"
										},
										{
											"begin": 9058,
											"end": 9176,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 9145,
											"end": 9169,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "352"
										},
										{
											"begin": 9163,
											"end": 9168,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 9145,
											"end": 9169,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "353"
										},
										{
											"begin": 9145,
											"end": 9169,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 9145,
											"end": 9169,
											"name": "tag",
											"source": 13,
											"value": "352"
										},
										{
											"begin": 9145,
											"end": 9169,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 9140,
											"end": 9143,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 9133,
											"end": 9170,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 9123,
											"end": 9176,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 9123,
											"end": 9176,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 9123,
											"end": 9176,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 9182,
											"end": 9339,
											"name": "tag",
											"source": 13,
											"value": "354"
										},
										{
											"begin": 9182,
											"end": 9339,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 9287,
											"end": 9332,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "356"
										},
										{
											"begin": 9307,
											"end": 9331,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "357"
										},
										{
											"begin": 9325,
											"end": 9330,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 9307,
											"end": 9331,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "353"
										},
										{
											"begin": 9307,
											"end": 9331,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 9307,
											"end": 9331,
											"name": "tag",
											"source": 13,
											"value": "357"
										},
										{
											"begin": 9307,
											"end": 9331,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 9287,
											"end": 9332,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "358"
										},
										{
											"begin": 9287,
											"end": 9332,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 9287,
											"end": 9332,
											"name": "tag",
											"source": 13,
											"value": "356"
										},
										{
											"begin": 9287,
											"end": 9332,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 9282,
											"end": 9285,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 9275,
											"end": 9333,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 9265,
											"end": 9339,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 9265,
											"end": 9339,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 9265,
											"end": 9339,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 9345,
											"end": 9454,
											"name": "tag",
											"source": 13,
											"value": "359"
										},
										{
											"begin": 9345,
											"end": 9454,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 9426,
											"end": 9447,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "361"
										},
										{
											"begin": 9441,
											"end": 9446,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 9426,
											"end": 9447,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "362"
										},
										{
											"begin": 9426,
											"end": 9447,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 9426,
											"end": 9447,
											"name": "tag",
											"source": 13,
											"value": "361"
										},
										{
											"begin": 9426,
											"end": 9447,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 9421,
											"end": 9424,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 9414,
											"end": 9448,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 9404,
											"end": 9454,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 9404,
											"end": 9454,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 9404,
											"end": 9454,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 9460,
											"end": 9800,
											"name": "tag",
											"source": 13,
											"value": "363"
										},
										{
											"begin": 9460,
											"end": 9800,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 9536,
											"end": 9539,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 9564,
											"end": 9602,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "365"
										},
										{
											"begin": 9596,
											"end": 9601,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 9564,
											"end": 9602,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "366"
										},
										{
											"begin": 9564,
											"end": 9602,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 9564,
											"end": 9602,
											"name": "tag",
											"source": 13,
											"value": "365"
										},
										{
											"begin": 9564,
											"end": 9602,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 9618,
											"end": 9678,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "367"
										},
										{
											"begin": 9671,
											"end": 9677,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 9666,
											"end": 9669,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 9618,
											"end": 9678,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "368"
										},
										{
											"begin": 9618,
											"end": 9678,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 9618,
											"end": 9678,
											"name": "tag",
											"source": 13,
											"value": "367"
										},
										{
											"begin": 9618,
											"end": 9678,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 9611,
											"end": 9678,
											"name": "SWAP4",
											"source": 13
										},
										{
											"begin": 9611,
											"end": 9678,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 9687,
											"end": 9739,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "369"
										},
										{
											"begin": 9732,
											"end": 9738,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 9727,
											"end": 9730,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 9720,
											"end": 9724,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 9713,
											"end": 9718,
											"name": "DUP7",
											"source": 13
										},
										{
											"begin": 9709,
											"end": 9725,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 9687,
											"end": 9739,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "370"
										},
										{
											"begin": 9687,
											"end": 9739,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 9687,
											"end": 9739,
											"name": "tag",
											"source": 13,
											"value": "369"
										},
										{
											"begin": 9687,
											"end": 9739,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 9764,
											"end": 9793,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "371"
										},
										{
											"begin": 9786,
											"end": 9792,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 9764,
											"end": 9793,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "372"
										},
										{
											"begin": 9764,
											"end": 9793,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 9764,
											"end": 9793,
											"name": "tag",
											"source": 13,
											"value": "371"
										},
										{
											"begin": 9764,
											"end": 9793,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 9759,
											"end": 9762,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 9755,
											"end": 9794,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 9748,
											"end": 9794,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 9748,
											"end": 9794,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 9540,
											"end": 9800,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 9540,
											"end": 9800,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 9540,
											"end": 9800,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 9540,
											"end": 9800,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 9540,
											"end": 9800,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 9540,
											"end": 9800,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 9806,
											"end": 10166,
											"name": "tag",
											"source": 13,
											"value": "373"
										},
										{
											"begin": 9806,
											"end": 10166,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 9892,
											"end": 9895,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 9920,
											"end": 9958,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "375"
										},
										{
											"begin": 9952,
											"end": 9957,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 9920,
											"end": 9958,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "366"
										},
										{
											"begin": 9920,
											"end": 9958,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 9920,
											"end": 9958,
											"name": "tag",
											"source": 13,
											"value": "375"
										},
										{
											"begin": 9920,
											"end": 9958,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 9974,
											"end": 10044,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "376"
										},
										{
											"begin": 10037,
											"end": 10043,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 10032,
											"end": 10035,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 9974,
											"end": 10044,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "377"
										},
										{
											"begin": 9974,
											"end": 10044,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 9974,
											"end": 10044,
											"name": "tag",
											"source": 13,
											"value": "376"
										},
										{
											"begin": 9974,
											"end": 10044,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 9967,
											"end": 10044,
											"name": "SWAP4",
											"source": 13
										},
										{
											"begin": 9967,
											"end": 10044,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 10053,
											"end": 10105,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "378"
										},
										{
											"begin": 10098,
											"end": 10104,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 10093,
											"end": 10096,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 10086,
											"end": 10090,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 10079,
											"end": 10084,
											"name": "DUP7",
											"source": 13
										},
										{
											"begin": 10075,
											"end": 10091,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 10053,
											"end": 10105,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "370"
										},
										{
											"begin": 10053,
											"end": 10105,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 10053,
											"end": 10105,
											"name": "tag",
											"source": 13,
											"value": "378"
										},
										{
											"begin": 10053,
											"end": 10105,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 10130,
											"end": 10159,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "379"
										},
										{
											"begin": 10152,
											"end": 10158,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 10130,
											"end": 10159,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "372"
										},
										{
											"begin": 10130,
											"end": 10159,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 10130,
											"end": 10159,
											"name": "tag",
											"source": 13,
											"value": "379"
										},
										{
											"begin": 10130,
											"end": 10159,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 10125,
											"end": 10128,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 10121,
											"end": 10160,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 10114,
											"end": 10160,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 10114,
											"end": 10160,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 9896,
											"end": 10166,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 9896,
											"end": 10166,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 9896,
											"end": 10166,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 9896,
											"end": 10166,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 9896,
											"end": 10166,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 9896,
											"end": 10166,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 10172,
											"end": 10545,
											"name": "tag",
											"source": 13,
											"value": "380"
										},
										{
											"begin": 10172,
											"end": 10545,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 10276,
											"end": 10279,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 10304,
											"end": 10342,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "382"
										},
										{
											"begin": 10336,
											"end": 10341,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 10304,
											"end": 10342,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "366"
										},
										{
											"begin": 10304,
											"end": 10342,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 10304,
											"end": 10342,
											"name": "tag",
											"source": 13,
											"value": "382"
										},
										{
											"begin": 10304,
											"end": 10342,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 10358,
											"end": 10446,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "383"
										},
										{
											"begin": 10439,
											"end": 10445,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 10434,
											"end": 10437,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 10358,
											"end": 10446,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "384"
										},
										{
											"begin": 10358,
											"end": 10446,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 10358,
											"end": 10446,
											"name": "tag",
											"source": 13,
											"value": "383"
										},
										{
											"begin": 10358,
											"end": 10446,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 10351,
											"end": 10446,
											"name": "SWAP4",
											"source": 13
										},
										{
											"begin": 10351,
											"end": 10446,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 10455,
											"end": 10507,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "385"
										},
										{
											"begin": 10500,
											"end": 10506,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 10495,
											"end": 10498,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 10488,
											"end": 10492,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 10481,
											"end": 10486,
											"name": "DUP7",
											"source": 13
										},
										{
											"begin": 10477,
											"end": 10493,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 10455,
											"end": 10507,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "370"
										},
										{
											"begin": 10455,
											"end": 10507,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 10455,
											"end": 10507,
											"name": "tag",
											"source": 13,
											"value": "385"
										},
										{
											"begin": 10455,
											"end": 10507,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 10532,
											"end": 10538,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 10527,
											"end": 10530,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 10523,
											"end": 10539,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 10516,
											"end": 10539,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 10516,
											"end": 10539,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 10280,
											"end": 10545,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 10280,
											"end": 10545,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 10280,
											"end": 10545,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 10280,
											"end": 10545,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 10280,
											"end": 10545,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 10280,
											"end": 10545,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 10551,
											"end": 10694,
											"name": "tag",
											"source": 13,
											"value": "386"
										},
										{
											"begin": 10551,
											"end": 10694,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 10644,
											"end": 10687,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "388"
										},
										{
											"begin": 10681,
											"end": 10686,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 10644,
											"end": 10687,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "389"
										},
										{
											"begin": 10644,
											"end": 10687,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 10644,
											"end": 10687,
											"name": "tag",
											"source": 13,
											"value": "388"
										},
										{
											"begin": 10644,
											"end": 10687,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 10639,
											"end": 10642,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 10632,
											"end": 10688,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 10622,
											"end": 10694,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 10622,
											"end": 10694,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 10622,
											"end": 10694,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 10700,
											"end": 11064,
											"name": "tag",
											"source": 13,
											"value": "390"
										},
										{
											"begin": 10700,
											"end": 11064,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 10788,
											"end": 10791,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 10816,
											"end": 10855,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "392"
										},
										{
											"begin": 10849,
											"end": 10854,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 10816,
											"end": 10855,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "393"
										},
										{
											"begin": 10816,
											"end": 10855,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 10816,
											"end": 10855,
											"name": "tag",
											"source": 13,
											"value": "392"
										},
										{
											"begin": 10816,
											"end": 10855,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 10871,
											"end": 10942,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "394"
										},
										{
											"begin": 10935,
											"end": 10941,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 10930,
											"end": 10933,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 10871,
											"end": 10942,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "395"
										},
										{
											"begin": 10871,
											"end": 10942,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 10871,
											"end": 10942,
											"name": "tag",
											"source": 13,
											"value": "394"
										},
										{
											"begin": 10871,
											"end": 10942,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 10864,
											"end": 10942,
											"name": "SWAP4",
											"source": 13
										},
										{
											"begin": 10864,
											"end": 10942,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 10951,
											"end": 11003,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "396"
										},
										{
											"begin": 10996,
											"end": 11002,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 10991,
											"end": 10994,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 10984,
											"end": 10988,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 10977,
											"end": 10982,
											"name": "DUP7",
											"source": 13
										},
										{
											"begin": 10973,
											"end": 10989,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 10951,
											"end": 11003,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "370"
										},
										{
											"begin": 10951,
											"end": 11003,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 10951,
											"end": 11003,
											"name": "tag",
											"source": 13,
											"value": "396"
										},
										{
											"begin": 10951,
											"end": 11003,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 11028,
											"end": 11057,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "397"
										},
										{
											"begin": 11050,
											"end": 11056,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 11028,
											"end": 11057,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "372"
										},
										{
											"begin": 11028,
											"end": 11057,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 11028,
											"end": 11057,
											"name": "tag",
											"source": 13,
											"value": "397"
										},
										{
											"begin": 11028,
											"end": 11057,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 11023,
											"end": 11026,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 11019,
											"end": 11058,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 11012,
											"end": 11058,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 11012,
											"end": 11058,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 10792,
											"end": 11064,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 10792,
											"end": 11064,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 10792,
											"end": 11064,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 10792,
											"end": 11064,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 10792,
											"end": 11064,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 10792,
											"end": 11064,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 11070,
											"end": 11436,
											"name": "tag",
											"source": 13,
											"value": "398"
										},
										{
											"begin": 11070,
											"end": 11436,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 11212,
											"end": 11215,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 11233,
											"end": 11300,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "400"
										},
										{
											"begin": 11297,
											"end": 11299,
											"name": "PUSH",
											"source": 13,
											"value": "22"
										},
										{
											"begin": 11292,
											"end": 11295,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 11233,
											"end": 11300,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "395"
										},
										{
											"begin": 11233,
											"end": 11300,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 11233,
											"end": 11300,
											"name": "tag",
											"source": 13,
											"value": "400"
										},
										{
											"begin": 11233,
											"end": 11300,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 11226,
											"end": 11300,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 11226,
											"end": 11300,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 11309,
											"end": 11402,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "401"
										},
										{
											"begin": 11398,
											"end": 11401,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 11309,
											"end": 11402,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "402"
										},
										{
											"begin": 11309,
											"end": 11402,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 11309,
											"end": 11402,
											"name": "tag",
											"source": 13,
											"value": "401"
										},
										{
											"begin": 11309,
											"end": 11402,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 11427,
											"end": 11429,
											"name": "PUSH",
											"source": 13,
											"value": "40"
										},
										{
											"begin": 11422,
											"end": 11425,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 11418,
											"end": 11430,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 11411,
											"end": 11430,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 11411,
											"end": 11430,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 11216,
											"end": 11436,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 11216,
											"end": 11436,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 11216,
											"end": 11436,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 11216,
											"end": 11436,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 11442,
											"end": 11805,
											"name": "tag",
											"source": 13,
											"value": "403"
										},
										{
											"begin": 11442,
											"end": 11805,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 11583,
											"end": 11586,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 11604,
											"end": 11669,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "405"
										},
										{
											"begin": 11667,
											"end": 11668,
											"name": "PUSH",
											"source": 13,
											"value": "2"
										},
										{
											"begin": 11662,
											"end": 11665,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 11604,
											"end": 11669,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "377"
										},
										{
											"begin": 11604,
											"end": 11669,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 11604,
											"end": 11669,
											"name": "tag",
											"source": 13,
											"value": "405"
										},
										{
											"begin": 11604,
											"end": 11669,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 11597,
											"end": 11669,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 11597,
											"end": 11669,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 11678,
											"end": 11771,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "406"
										},
										{
											"begin": 11767,
											"end": 11770,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 11678,
											"end": 11771,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "407"
										},
										{
											"begin": 11678,
											"end": 11771,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 11678,
											"end": 11771,
											"name": "tag",
											"source": 13,
											"value": "406"
										},
										{
											"begin": 11678,
											"end": 11771,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 11796,
											"end": 11798,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 11791,
											"end": 11794,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 11787,
											"end": 11799,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 11780,
											"end": 11799,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 11780,
											"end": 11799,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 11587,
											"end": 11805,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 11587,
											"end": 11805,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 11587,
											"end": 11805,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 11587,
											"end": 11805,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 11811,
											"end": 12177,
											"name": "tag",
											"source": 13,
											"value": "408"
										},
										{
											"begin": 11811,
											"end": 12177,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 11953,
											"end": 11956,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 11974,
											"end": 12041,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "410"
										},
										{
											"begin": 12038,
											"end": 12040,
											"name": "PUSH",
											"source": 13,
											"value": "26"
										},
										{
											"begin": 12033,
											"end": 12036,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 11974,
											"end": 12041,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "395"
										},
										{
											"begin": 11974,
											"end": 12041,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 11974,
											"end": 12041,
											"name": "tag",
											"source": 13,
											"value": "410"
										},
										{
											"begin": 11974,
											"end": 12041,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 11967,
											"end": 12041,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 11967,
											"end": 12041,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 12050,
											"end": 12143,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "411"
										},
										{
											"begin": 12139,
											"end": 12142,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 12050,
											"end": 12143,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "412"
										},
										{
											"begin": 12050,
											"end": 12143,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 12050,
											"end": 12143,
											"name": "tag",
											"source": 13,
											"value": "411"
										},
										{
											"begin": 12050,
											"end": 12143,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 12168,
											"end": 12170,
											"name": "PUSH",
											"source": 13,
											"value": "40"
										},
										{
											"begin": 12163,
											"end": 12166,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 12159,
											"end": 12171,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 12152,
											"end": 12171,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 12152,
											"end": 12171,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 11957,
											"end": 12177,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 11957,
											"end": 12177,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 11957,
											"end": 12177,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 11957,
											"end": 12177,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 12183,
											"end": 12548,
											"name": "tag",
											"source": 13,
											"value": "413"
										},
										{
											"begin": 12183,
											"end": 12548,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 12325,
											"end": 12328,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 12346,
											"end": 12412,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "415"
										},
										{
											"begin": 12410,
											"end": 12411,
											"name": "PUSH",
											"source": 13,
											"value": "8"
										},
										{
											"begin": 12405,
											"end": 12408,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 12346,
											"end": 12412,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "395"
										},
										{
											"begin": 12346,
											"end": 12412,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 12346,
											"end": 12412,
											"name": "tag",
											"source": 13,
											"value": "415"
										},
										{
											"begin": 12346,
											"end": 12412,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 12339,
											"end": 12412,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 12339,
											"end": 12412,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 12421,
											"end": 12514,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "416"
										},
										{
											"begin": 12510,
											"end": 12513,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 12421,
											"end": 12514,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "417"
										},
										{
											"begin": 12421,
											"end": 12514,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 12421,
											"end": 12514,
											"name": "tag",
											"source": 13,
											"value": "416"
										},
										{
											"begin": 12421,
											"end": 12514,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 12539,
											"end": 12541,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 12534,
											"end": 12537,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 12530,
											"end": 12542,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 12523,
											"end": 12542,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 12523,
											"end": 12542,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 12329,
											"end": 12548,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 12329,
											"end": 12548,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 12329,
											"end": 12548,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 12329,
											"end": 12548,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 12554,
											"end": 12920,
											"name": "tag",
											"source": 13,
											"value": "418"
										},
										{
											"begin": 12554,
											"end": 12920,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 12696,
											"end": 12699,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 12717,
											"end": 12784,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "420"
										},
										{
											"begin": 12781,
											"end": 12783,
											"name": "PUSH",
											"source": 13,
											"value": "1D"
										},
										{
											"begin": 12776,
											"end": 12779,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 12717,
											"end": 12784,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "395"
										},
										{
											"begin": 12717,
											"end": 12784,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 12717,
											"end": 12784,
											"name": "tag",
											"source": 13,
											"value": "420"
										},
										{
											"begin": 12717,
											"end": 12784,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 12710,
											"end": 12784,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 12710,
											"end": 12784,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 12793,
											"end": 12886,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "421"
										},
										{
											"begin": 12882,
											"end": 12885,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 12793,
											"end": 12886,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "422"
										},
										{
											"begin": 12793,
											"end": 12886,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 12793,
											"end": 12886,
											"name": "tag",
											"source": 13,
											"value": "421"
										},
										{
											"begin": 12793,
											"end": 12886,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 12911,
											"end": 12913,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 12906,
											"end": 12909,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 12902,
											"end": 12914,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 12895,
											"end": 12914,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 12895,
											"end": 12914,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 12700,
											"end": 12920,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 12700,
											"end": 12920,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 12700,
											"end": 12920,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 12700,
											"end": 12920,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 12926,
											"end": 13292,
											"name": "tag",
											"source": 13,
											"value": "423"
										},
										{
											"begin": 12926,
											"end": 13292,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 13068,
											"end": 13071,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 13089,
											"end": 13156,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "425"
										},
										{
											"begin": 13153,
											"end": 13155,
											"name": "PUSH",
											"source": 13,
											"value": "2A"
										},
										{
											"begin": 13148,
											"end": 13151,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 13089,
											"end": 13156,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "395"
										},
										{
											"begin": 13089,
											"end": 13156,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 13089,
											"end": 13156,
											"name": "tag",
											"source": 13,
											"value": "425"
										},
										{
											"begin": 13089,
											"end": 13156,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 13082,
											"end": 13156,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 13082,
											"end": 13156,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 13165,
											"end": 13258,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "426"
										},
										{
											"begin": 13254,
											"end": 13257,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 13165,
											"end": 13258,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "427"
										},
										{
											"begin": 13165,
											"end": 13258,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 13165,
											"end": 13258,
											"name": "tag",
											"source": 13,
											"value": "426"
										},
										{
											"begin": 13165,
											"end": 13258,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 13283,
											"end": 13285,
											"name": "PUSH",
											"source": 13,
											"value": "40"
										},
										{
											"begin": 13278,
											"end": 13281,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 13274,
											"end": 13286,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 13267,
											"end": 13286,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 13267,
											"end": 13286,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 13072,
											"end": 13292,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 13072,
											"end": 13292,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 13072,
											"end": 13292,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 13072,
											"end": 13292,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 13298,
											"end": 13664,
											"name": "tag",
											"source": 13,
											"value": "428"
										},
										{
											"begin": 13298,
											"end": 13664,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 13440,
											"end": 13443,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 13461,
											"end": 13528,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "430"
										},
										{
											"begin": 13525,
											"end": 13527,
											"name": "PUSH",
											"source": 13,
											"value": "36"
										},
										{
											"begin": 13520,
											"end": 13523,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 13461,
											"end": 13528,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "395"
										},
										{
											"begin": 13461,
											"end": 13528,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 13461,
											"end": 13528,
											"name": "tag",
											"source": 13,
											"value": "430"
										},
										{
											"begin": 13461,
											"end": 13528,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 13454,
											"end": 13528,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 13454,
											"end": 13528,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 13537,
											"end": 13630,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "431"
										},
										{
											"begin": 13626,
											"end": 13629,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 13537,
											"end": 13630,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "432"
										},
										{
											"begin": 13537,
											"end": 13630,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 13537,
											"end": 13630,
											"name": "tag",
											"source": 13,
											"value": "431"
										},
										{
											"begin": 13537,
											"end": 13630,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 13655,
											"end": 13657,
											"name": "PUSH",
											"source": 13,
											"value": "40"
										},
										{
											"begin": 13650,
											"end": 13653,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 13646,
											"end": 13658,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 13639,
											"end": 13658,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 13639,
											"end": 13658,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 13444,
											"end": 13664,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 13444,
											"end": 13664,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 13444,
											"end": 13664,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 13444,
											"end": 13664,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 13742,
											"end": 14549,
											"name": "tag",
											"source": 13,
											"value": "433"
										},
										{
											"begin": 13742,
											"end": 14549,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 13861,
											"end": 13864,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 13897,
											"end": 13901,
											"name": "PUSH",
											"source": 13,
											"value": "60"
										},
										{
											"begin": 13892,
											"end": 13895,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 13888,
											"end": 13902,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 13993,
											"end": 13997,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 13986,
											"end": 13991,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 13982,
											"end": 13998,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 13976,
											"end": 13999,
											"name": "MLOAD",
											"source": 13
										},
										{
											"begin": 14012,
											"end": 14075,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "435"
										},
										{
											"begin": 14069,
											"end": 14073,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 14064,
											"end": 14067,
											"name": "DUP7",
											"source": 13
										},
										{
											"begin": 14060,
											"end": 14074,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 14046,
											"end": 14058,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 14012,
											"end": 14075,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "436"
										},
										{
											"begin": 14012,
											"end": 14075,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 14012,
											"end": 14075,
											"name": "tag",
											"source": 13,
											"value": "435"
										},
										{
											"begin": 14012,
											"end": 14075,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 13912,
											"end": 14085,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 14178,
											"end": 14182,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 14171,
											"end": 14176,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 14167,
											"end": 14183,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 14161,
											"end": 14184,
											"name": "MLOAD",
											"source": 13
										},
										{
											"begin": 14197,
											"end": 14260,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "437"
										},
										{
											"begin": 14254,
											"end": 14258,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 14249,
											"end": 14252,
											"name": "DUP7",
											"source": 13
										},
										{
											"begin": 14245,
											"end": 14259,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 14231,
											"end": 14243,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 14197,
											"end": 14260,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "436"
										},
										{
											"begin": 14197,
											"end": 14260,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 14197,
											"end": 14260,
											"name": "tag",
											"source": 13,
											"value": "437"
										},
										{
											"begin": 14197,
											"end": 14260,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 14095,
											"end": 14270,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 14361,
											"end": 14365,
											"name": "PUSH",
											"source": 13,
											"value": "40"
										},
										{
											"begin": 14354,
											"end": 14359,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 14350,
											"end": 14366,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 14344,
											"end": 14367,
											"name": "MLOAD",
											"source": 13
										},
										{
											"begin": 14414,
											"end": 14417,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 14408,
											"end": 14412,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 14404,
											"end": 14418,
											"name": "SUB",
											"source": 13
										},
										{
											"begin": 14397,
											"end": 14401,
											"name": "PUSH",
											"source": 13,
											"value": "40"
										},
										{
											"begin": 14392,
											"end": 14395,
											"name": "DUP7",
											"source": 13
										},
										{
											"begin": 14388,
											"end": 14402,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 14381,
											"end": 14419,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 14440,
											"end": 14511,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "438"
										},
										{
											"begin": 14506,
											"end": 14510,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 14492,
											"end": 14504,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 14440,
											"end": 14511,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "363"
										},
										{
											"begin": 14440,
											"end": 14511,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 14440,
											"end": 14511,
											"name": "tag",
											"source": 13,
											"value": "438"
										},
										{
											"begin": 14440,
											"end": 14511,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 14432,
											"end": 14511,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 14432,
											"end": 14511,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 14280,
											"end": 14522,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 14539,
											"end": 14543,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 14532,
											"end": 14543,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 14532,
											"end": 14543,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 13866,
											"end": 14549,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 13866,
											"end": 14549,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 13866,
											"end": 14549,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 13866,
											"end": 14549,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 13866,
											"end": 14549,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 13866,
											"end": 14549,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 14555,
											"end": 14670,
											"name": "tag",
											"source": 13,
											"value": "439"
										},
										{
											"begin": 14555,
											"end": 14670,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 14640,
											"end": 14663,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "441"
										},
										{
											"begin": 14657,
											"end": 14662,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 14640,
											"end": 14663,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "442"
										},
										{
											"begin": 14640,
											"end": 14663,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 14640,
											"end": 14663,
											"name": "tag",
											"source": 13,
											"value": "441"
										},
										{
											"begin": 14640,
											"end": 14663,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 14635,
											"end": 14638,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 14628,
											"end": 14664,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 14618,
											"end": 14670,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 14618,
											"end": 14670,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 14618,
											"end": 14670,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 14676,
											"end": 14805,
											"name": "tag",
											"source": 13,
											"value": "443"
										},
										{
											"begin": 14676,
											"end": 14805,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 14762,
											"end": 14798,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "445"
										},
										{
											"begin": 14792,
											"end": 14797,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 14762,
											"end": 14798,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "446"
										},
										{
											"begin": 14762,
											"end": 14798,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 14762,
											"end": 14798,
											"name": "tag",
											"source": 13,
											"value": "445"
										},
										{
											"begin": 14762,
											"end": 14798,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 14757,
											"end": 14760,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 14750,
											"end": 14799,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 14740,
											"end": 14805,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 14740,
											"end": 14805,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 14740,
											"end": 14805,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 14811,
											"end": 14919,
											"name": "tag",
											"source": 13,
											"value": "436"
										},
										{
											"begin": 14811,
											"end": 14919,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 14888,
											"end": 14912,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "448"
										},
										{
											"begin": 14906,
											"end": 14911,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 14888,
											"end": 14912,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "449"
										},
										{
											"begin": 14888,
											"end": 14912,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 14888,
											"end": 14912,
											"name": "tag",
											"source": 13,
											"value": "448"
										},
										{
											"begin": 14888,
											"end": 14912,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 14883,
											"end": 14886,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 14876,
											"end": 14913,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 14866,
											"end": 14919,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 14866,
											"end": 14919,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 14866,
											"end": 14919,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 14925,
											"end": 15043,
											"name": "tag",
											"source": 13,
											"value": "450"
										},
										{
											"begin": 14925,
											"end": 15043,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 15012,
											"end": 15036,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "452"
										},
										{
											"begin": 15030,
											"end": 15035,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 15012,
											"end": 15036,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "449"
										},
										{
											"begin": 15012,
											"end": 15036,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 15012,
											"end": 15036,
											"name": "tag",
											"source": 13,
											"value": "452"
										},
										{
											"begin": 15012,
											"end": 15036,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 15007,
											"end": 15010,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 15000,
											"end": 15037,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 14990,
											"end": 15043,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 14990,
											"end": 15043,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 14990,
											"end": 15043,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 15049,
											"end": 15305,
											"name": "tag",
											"source": 13,
											"value": "81"
										},
										{
											"begin": 15049,
											"end": 15305,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 15161,
											"end": 15164,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 15176,
											"end": 15251,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "454"
										},
										{
											"begin": 15247,
											"end": 15250,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 15238,
											"end": 15244,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 15176,
											"end": 15251,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "354"
										},
										{
											"begin": 15176,
											"end": 15251,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 15176,
											"end": 15251,
											"name": "tag",
											"source": 13,
											"value": "454"
										},
										{
											"begin": 15176,
											"end": 15251,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 15276,
											"end": 15278,
											"name": "PUSH",
											"source": 13,
											"value": "14"
										},
										{
											"begin": 15271,
											"end": 15274,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 15267,
											"end": 15279,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 15260,
											"end": 15279,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 15260,
											"end": 15279,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 15296,
											"end": 15299,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 15289,
											"end": 15299,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 15289,
											"end": 15299,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 15165,
											"end": 15305,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 15165,
											"end": 15305,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 15165,
											"end": 15305,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 15165,
											"end": 15305,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 15165,
											"end": 15305,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 15311,
											"end": 15582,
											"name": "tag",
											"source": 13,
											"value": "225"
										},
										{
											"begin": 15311,
											"end": 15582,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 15441,
											"end": 15444,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 15463,
											"end": 15556,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "456"
										},
										{
											"begin": 15552,
											"end": 15555,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 15543,
											"end": 15549,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 15463,
											"end": 15556,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "380"
										},
										{
											"begin": 15463,
											"end": 15556,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 15463,
											"end": 15556,
											"name": "tag",
											"source": 13,
											"value": "456"
										},
										{
											"begin": 15463,
											"end": 15556,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 15456,
											"end": 15556,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 15456,
											"end": 15556,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 15573,
											"end": 15576,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 15566,
											"end": 15576,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 15566,
											"end": 15576,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 15445,
											"end": 15582,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 15445,
											"end": 15582,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 15445,
											"end": 15582,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 15445,
											"end": 15582,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 15445,
											"end": 15582,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 15588,
											"end": 15810,
											"name": "tag",
											"source": 13,
											"value": "112"
										},
										{
											"begin": 15588,
											"end": 15810,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 15681,
											"end": 15685,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 15719,
											"end": 15721,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 15708,
											"end": 15717,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 15704,
											"end": 15722,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 15696,
											"end": 15722,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 15696,
											"end": 15722,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 15732,
											"end": 15803,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "458"
										},
										{
											"begin": 15800,
											"end": 15801,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 15789,
											"end": 15798,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 15785,
											"end": 15802,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 15776,
											"end": 15782,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 15732,
											"end": 15803,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "350"
										},
										{
											"begin": 15732,
											"end": 15803,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 15732,
											"end": 15803,
											"name": "tag",
											"source": 13,
											"value": "458"
										},
										{
											"begin": 15732,
											"end": 15803,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 15686,
											"end": 15810,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 15686,
											"end": 15810,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 15686,
											"end": 15810,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 15686,
											"end": 15810,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 15686,
											"end": 15810,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 15816,
											"end": 16070,
											"name": "tag",
											"source": 13,
											"value": "139"
										},
										{
											"begin": 15816,
											"end": 16070,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 15925,
											"end": 15929,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 15963,
											"end": 15965,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 15952,
											"end": 15961,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 15948,
											"end": 15966,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 15940,
											"end": 15966,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 15940,
											"end": 15966,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 15976,
											"end": 16063,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "460"
										},
										{
											"begin": 16060,
											"end": 16061,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 16049,
											"end": 16058,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 16045,
											"end": 16062,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 16036,
											"end": 16042,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 15976,
											"end": 16063,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "346"
										},
										{
											"begin": 15976,
											"end": 16063,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 15976,
											"end": 16063,
											"name": "tag",
											"source": 13,
											"value": "460"
										},
										{
											"begin": 15976,
											"end": 16063,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 15930,
											"end": 16070,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 15930,
											"end": 16070,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 15930,
											"end": 16070,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 15930,
											"end": 16070,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 15930,
											"end": 16070,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 16076,
											"end": 16408,
											"name": "tag",
											"source": 13,
											"value": "192"
										},
										{
											"begin": 16076,
											"end": 16408,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 16197,
											"end": 16201,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 16235,
											"end": 16237,
											"name": "PUSH",
											"source": 13,
											"value": "40"
										},
										{
											"begin": 16224,
											"end": 16233,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 16220,
											"end": 16238,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 16212,
											"end": 16238,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 16212,
											"end": 16238,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 16248,
											"end": 16319,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "462"
										},
										{
											"begin": 16316,
											"end": 16317,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 16305,
											"end": 16314,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 16301,
											"end": 16318,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 16292,
											"end": 16298,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 16248,
											"end": 16319,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "350"
										},
										{
											"begin": 16248,
											"end": 16319,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 16248,
											"end": 16319,
											"name": "tag",
											"source": 13,
											"value": "462"
										},
										{
											"begin": 16248,
											"end": 16319,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 16329,
											"end": 16401,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "463"
										},
										{
											"begin": 16397,
											"end": 16399,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 16386,
											"end": 16395,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 16382,
											"end": 16400,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 16373,
											"end": 16379,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 16329,
											"end": 16401,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "350"
										},
										{
											"begin": 16329,
											"end": 16401,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 16329,
											"end": 16401,
											"name": "tag",
											"source": 13,
											"value": "463"
										},
										{
											"begin": 16329,
											"end": 16401,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 16202,
											"end": 16408,
											"name": "SWAP4",
											"source": 13
										},
										{
											"begin": 16202,
											"end": 16408,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 16202,
											"end": 16408,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 16202,
											"end": 16408,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 16202,
											"end": 16408,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 16202,
											"end": 16408,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 16414,
											"end": 16856,
											"name": "tag",
											"source": 13,
											"value": "187"
										},
										{
											"begin": 16414,
											"end": 16856,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 16563,
											"end": 16567,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 16601,
											"end": 16603,
											"name": "PUSH",
											"source": 13,
											"value": "60"
										},
										{
											"begin": 16590,
											"end": 16599,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 16586,
											"end": 16604,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 16578,
											"end": 16604,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 16578,
											"end": 16604,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 16614,
											"end": 16685,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "465"
										},
										{
											"begin": 16682,
											"end": 16683,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 16671,
											"end": 16680,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 16667,
											"end": 16684,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 16658,
											"end": 16664,
											"name": "DUP7",
											"source": 13
										},
										{
											"begin": 16614,
											"end": 16685,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "350"
										},
										{
											"begin": 16614,
											"end": 16685,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 16614,
											"end": 16685,
											"name": "tag",
											"source": 13,
											"value": "465"
										},
										{
											"begin": 16614,
											"end": 16685,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 16695,
											"end": 16767,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "466"
										},
										{
											"begin": 16763,
											"end": 16765,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 16752,
											"end": 16761,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 16748,
											"end": 16766,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 16739,
											"end": 16745,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 16695,
											"end": 16767,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "350"
										},
										{
											"begin": 16695,
											"end": 16767,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 16695,
											"end": 16767,
											"name": "tag",
											"source": 13,
											"value": "466"
										},
										{
											"begin": 16695,
											"end": 16767,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 16777,
											"end": 16849,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "467"
										},
										{
											"begin": 16845,
											"end": 16847,
											"name": "PUSH",
											"source": 13,
											"value": "40"
										},
										{
											"begin": 16834,
											"end": 16843,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 16830,
											"end": 16848,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 16821,
											"end": 16827,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 16777,
											"end": 16849,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "450"
										},
										{
											"begin": 16777,
											"end": 16849,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 16777,
											"end": 16849,
											"name": "tag",
											"source": 13,
											"value": "467"
										},
										{
											"begin": 16777,
											"end": 16849,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 16568,
											"end": 16856,
											"name": "SWAP5",
											"source": 13
										},
										{
											"begin": 16568,
											"end": 16856,
											"name": "SWAP4",
											"source": 13
										},
										{
											"begin": 16568,
											"end": 16856,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 16568,
											"end": 16856,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 16568,
											"end": 16856,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 16568,
											"end": 16856,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 16568,
											"end": 16856,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 16862,
											"end": 17190,
											"name": "tag",
											"source": 13,
											"value": "106"
										},
										{
											"begin": 16862,
											"end": 17190,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 16981,
											"end": 16985,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 17019,
											"end": 17021,
											"name": "PUSH",
											"source": 13,
											"value": "40"
										},
										{
											"begin": 17008,
											"end": 17017,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 17004,
											"end": 17022,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 16996,
											"end": 17022,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 16996,
											"end": 17022,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 17032,
											"end": 17103,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "469"
										},
										{
											"begin": 17100,
											"end": 17101,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 17089,
											"end": 17098,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 17085,
											"end": 17102,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 17076,
											"end": 17082,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 17032,
											"end": 17103,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "350"
										},
										{
											"begin": 17032,
											"end": 17103,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 17032,
											"end": 17103,
											"name": "tag",
											"source": 13,
											"value": "469"
										},
										{
											"begin": 17032,
											"end": 17103,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 17113,
											"end": 17183,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "470"
										},
										{
											"begin": 17179,
											"end": 17181,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 17168,
											"end": 17177,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 17164,
											"end": 17182,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 17155,
											"end": 17161,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 17113,
											"end": 17183,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "439"
										},
										{
											"begin": 17113,
											"end": 17183,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 17113,
											"end": 17183,
											"name": "tag",
											"source": 13,
											"value": "470"
										},
										{
											"begin": 17113,
											"end": 17183,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 16986,
											"end": 17190,
											"name": "SWAP4",
											"source": 13
										},
										{
											"begin": 16986,
											"end": 17190,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 16986,
											"end": 17190,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 16986,
											"end": 17190,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 16986,
											"end": 17190,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 16986,
											"end": 17190,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 17196,
											"end": 17528,
											"name": "tag",
											"source": 13,
											"value": "162"
										},
										{
											"begin": 17196,
											"end": 17528,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 17317,
											"end": 17321,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 17355,
											"end": 17357,
											"name": "PUSH",
											"source": 13,
											"value": "40"
										},
										{
											"begin": 17344,
											"end": 17353,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 17340,
											"end": 17358,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 17332,
											"end": 17358,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 17332,
											"end": 17358,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 17368,
											"end": 17439,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "472"
										},
										{
											"begin": 17436,
											"end": 17437,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 17425,
											"end": 17434,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 17421,
											"end": 17438,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 17412,
											"end": 17418,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 17368,
											"end": 17439,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "350"
										},
										{
											"begin": 17368,
											"end": 17439,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 17368,
											"end": 17439,
											"name": "tag",
											"source": 13,
											"value": "472"
										},
										{
											"begin": 17368,
											"end": 17439,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 17449,
											"end": 17521,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "473"
										},
										{
											"begin": 17517,
											"end": 17519,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 17506,
											"end": 17515,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 17502,
											"end": 17520,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 17493,
											"end": 17499,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 17449,
											"end": 17521,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "450"
										},
										{
											"begin": 17449,
											"end": 17521,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 17449,
											"end": 17521,
											"name": "tag",
											"source": 13,
											"value": "473"
										},
										{
											"begin": 17449,
											"end": 17521,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 17322,
											"end": 17528,
											"name": "SWAP4",
											"source": 13
										},
										{
											"begin": 17322,
											"end": 17528,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 17322,
											"end": 17528,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 17322,
											"end": 17528,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 17322,
											"end": 17528,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 17322,
											"end": 17528,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 17534,
											"end": 17744,
											"name": "tag",
											"source": 13,
											"value": "53"
										},
										{
											"begin": 17534,
											"end": 17744,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 17621,
											"end": 17625,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 17659,
											"end": 17661,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 17648,
											"end": 17657,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 17644,
											"end": 17662,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 17636,
											"end": 17662,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 17636,
											"end": 17662,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 17672,
											"end": 17737,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "475"
										},
										{
											"begin": 17734,
											"end": 17735,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 17723,
											"end": 17732,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 17719,
											"end": 17736,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 17710,
											"end": 17716,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 17672,
											"end": 17737,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "359"
										},
										{
											"begin": 17672,
											"end": 17737,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 17672,
											"end": 17737,
											"name": "tag",
											"source": 13,
											"value": "475"
										},
										{
											"begin": 17672,
											"end": 17737,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 17626,
											"end": 17744,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 17626,
											"end": 17744,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 17626,
											"end": 17744,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 17626,
											"end": 17744,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 17626,
											"end": 17744,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 17750,
											"end": 18063,
											"name": "tag",
											"source": 13,
											"value": "238"
										},
										{
											"begin": 17750,
											"end": 18063,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 17863,
											"end": 17867,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 17901,
											"end": 17903,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 17890,
											"end": 17899,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 17886,
											"end": 17904,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 17878,
											"end": 17904,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 17878,
											"end": 17904,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 17950,
											"end": 17959,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 17944,
											"end": 17948,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 17940,
											"end": 17960,
											"name": "SUB",
											"source": 13
										},
										{
											"begin": 17936,
											"end": 17937,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 17925,
											"end": 17934,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 17921,
											"end": 17938,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 17914,
											"end": 17961,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 17978,
											"end": 18056,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "477"
										},
										{
											"begin": 18051,
											"end": 18055,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 18042,
											"end": 18048,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 17978,
											"end": 18056,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "390"
										},
										{
											"begin": 17978,
											"end": 18056,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 17978,
											"end": 18056,
											"name": "tag",
											"source": 13,
											"value": "477"
										},
										{
											"begin": 17978,
											"end": 18056,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 17970,
											"end": 18056,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 17970,
											"end": 18056,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 17868,
											"end": 18063,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 17868,
											"end": 18063,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 17868,
											"end": 18063,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 17868,
											"end": 18063,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 17868,
											"end": 18063,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 18069,
											"end": 18488,
											"name": "tag",
											"source": 13,
											"value": "181"
										},
										{
											"begin": 18069,
											"end": 18488,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 18235,
											"end": 18239,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 18273,
											"end": 18275,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 18262,
											"end": 18271,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 18258,
											"end": 18276,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 18250,
											"end": 18276,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 18250,
											"end": 18276,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 18322,
											"end": 18331,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 18316,
											"end": 18320,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 18312,
											"end": 18332,
											"name": "SUB",
											"source": 13
										},
										{
											"begin": 18308,
											"end": 18309,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 18297,
											"end": 18306,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 18293,
											"end": 18310,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 18286,
											"end": 18333,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 18350,
											"end": 18481,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "479"
										},
										{
											"begin": 18476,
											"end": 18480,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 18350,
											"end": 18481,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "398"
										},
										{
											"begin": 18350,
											"end": 18481,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 18350,
											"end": 18481,
											"name": "tag",
											"source": 13,
											"value": "479"
										},
										{
											"begin": 18350,
											"end": 18481,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 18342,
											"end": 18481,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 18342,
											"end": 18481,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 18240,
											"end": 18488,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 18240,
											"end": 18488,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 18240,
											"end": 18488,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 18240,
											"end": 18488,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 18494,
											"end": 18913,
											"name": "tag",
											"source": 13,
											"value": "218"
										},
										{
											"begin": 18494,
											"end": 18913,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 18660,
											"end": 18664,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 18698,
											"end": 18700,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 18687,
											"end": 18696,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 18683,
											"end": 18701,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 18675,
											"end": 18701,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 18675,
											"end": 18701,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 18747,
											"end": 18756,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 18741,
											"end": 18745,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 18737,
											"end": 18757,
											"name": "SUB",
											"source": 13
										},
										{
											"begin": 18733,
											"end": 18734,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 18722,
											"end": 18731,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 18718,
											"end": 18735,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 18711,
											"end": 18758,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 18775,
											"end": 18906,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "481"
										},
										{
											"begin": 18901,
											"end": 18905,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 18775,
											"end": 18906,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "408"
										},
										{
											"begin": 18775,
											"end": 18906,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 18775,
											"end": 18906,
											"name": "tag",
											"source": 13,
											"value": "481"
										},
										{
											"begin": 18775,
											"end": 18906,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 18767,
											"end": 18906,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 18767,
											"end": 18906,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 18665,
											"end": 18913,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 18665,
											"end": 18913,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 18665,
											"end": 18913,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 18665,
											"end": 18913,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 18919,
											"end": 20014,
											"name": "tag",
											"source": 13,
											"value": "151"
										},
										{
											"begin": 18919,
											"end": 20014,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 19259,
											"end": 19263,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 19297,
											"end": 19300,
											"name": "PUSH",
											"source": 13,
											"value": "E0"
										},
										{
											"begin": 19286,
											"end": 19295,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 19282,
											"end": 19301,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 19274,
											"end": 19301,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 19274,
											"end": 19301,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 19347,
											"end": 19356,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 19341,
											"end": 19345,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 19337,
											"end": 19357,
											"name": "SUB",
											"source": 13
										},
										{
											"begin": 19333,
											"end": 19334,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 19322,
											"end": 19331,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 19318,
											"end": 19335,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 19311,
											"end": 19358,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 19375,
											"end": 19506,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "483"
										},
										{
											"begin": 19501,
											"end": 19505,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 19375,
											"end": 19506,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "413"
										},
										{
											"begin": 19375,
											"end": 19506,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 19375,
											"end": 19506,
											"name": "tag",
											"source": 13,
											"value": "483"
										},
										{
											"begin": 19375,
											"end": 19506,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 19367,
											"end": 19506,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 19367,
											"end": 19506,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 19516,
											"end": 19588,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "484"
										},
										{
											"begin": 19584,
											"end": 19586,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 19573,
											"end": 19582,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 19569,
											"end": 19587,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 19560,
											"end": 19566,
											"name": "DUP10",
											"source": 13
										},
										{
											"begin": 19516,
											"end": 19588,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "350"
										},
										{
											"begin": 19516,
											"end": 19588,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 19516,
											"end": 19588,
											"name": "tag",
											"source": 13,
											"value": "484"
										},
										{
											"begin": 19516,
											"end": 19588,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 19598,
											"end": 19670,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "485"
										},
										{
											"begin": 19666,
											"end": 19668,
											"name": "PUSH",
											"source": 13,
											"value": "40"
										},
										{
											"begin": 19655,
											"end": 19664,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 19651,
											"end": 19669,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 19642,
											"end": 19648,
											"name": "DUP9",
											"source": 13
										},
										{
											"begin": 19598,
											"end": 19670,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "350"
										},
										{
											"begin": 19598,
											"end": 19670,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 19598,
											"end": 19670,
											"name": "tag",
											"source": 13,
											"value": "485"
										},
										{
											"begin": 19598,
											"end": 19670,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 19680,
											"end": 19752,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "486"
										},
										{
											"begin": 19748,
											"end": 19750,
											"name": "PUSH",
											"source": 13,
											"value": "60"
										},
										{
											"begin": 19737,
											"end": 19746,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 19733,
											"end": 19751,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 19724,
											"end": 19730,
											"name": "DUP8",
											"source": 13
										},
										{
											"begin": 19680,
											"end": 19752,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "350"
										},
										{
											"begin": 19680,
											"end": 19752,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 19680,
											"end": 19752,
											"name": "tag",
											"source": 13,
											"value": "486"
										},
										{
											"begin": 19680,
											"end": 19752,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 19762,
											"end": 19843,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "487"
										},
										{
											"begin": 19838,
											"end": 19841,
											"name": "PUSH",
											"source": 13,
											"value": "80"
										},
										{
											"begin": 19827,
											"end": 19836,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 19823,
											"end": 19842,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 19814,
											"end": 19820,
											"name": "DUP7",
											"source": 13
										},
										{
											"begin": 19762,
											"end": 19843,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "342"
										},
										{
											"begin": 19762,
											"end": 19843,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 19762,
											"end": 19843,
											"name": "tag",
											"source": 13,
											"value": "487"
										},
										{
											"begin": 19762,
											"end": 19843,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 19853,
											"end": 19926,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "488"
										},
										{
											"begin": 19921,
											"end": 19924,
											"name": "PUSH",
											"source": 13,
											"value": "A0"
										},
										{
											"begin": 19910,
											"end": 19919,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 19906,
											"end": 19925,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 19897,
											"end": 19903,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 19853,
											"end": 19926,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "450"
										},
										{
											"begin": 19853,
											"end": 19926,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 19853,
											"end": 19926,
											"name": "tag",
											"source": 13,
											"value": "488"
										},
										{
											"begin": 19853,
											"end": 19926,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 19936,
											"end": 20007,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "489"
										},
										{
											"begin": 20002,
											"end": 20005,
											"name": "PUSH",
											"source": 13,
											"value": "C0"
										},
										{
											"begin": 19991,
											"end": 20000,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 19987,
											"end": 20006,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 19978,
											"end": 19984,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 19936,
											"end": 20007,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "439"
										},
										{
											"begin": 19936,
											"end": 20007,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 19936,
											"end": 20007,
											"name": "tag",
											"source": 13,
											"value": "489"
										},
										{
											"begin": 19936,
											"end": 20007,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 19264,
											"end": 20014,
											"name": "SWAP8",
											"source": 13
										},
										{
											"begin": 19264,
											"end": 20014,
											"name": "SWAP7",
											"source": 13
										},
										{
											"begin": 19264,
											"end": 20014,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 19264,
											"end": 20014,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 19264,
											"end": 20014,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 19264,
											"end": 20014,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 19264,
											"end": 20014,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 19264,
											"end": 20014,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 19264,
											"end": 20014,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 19264,
											"end": 20014,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 20020,
											"end": 20439,
											"name": "tag",
											"source": 13,
											"value": "223"
										},
										{
											"begin": 20020,
											"end": 20439,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 20186,
											"end": 20190,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 20224,
											"end": 20226,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 20213,
											"end": 20222,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 20209,
											"end": 20227,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 20201,
											"end": 20227,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 20201,
											"end": 20227,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 20273,
											"end": 20282,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 20267,
											"end": 20271,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 20263,
											"end": 20283,
											"name": "SUB",
											"source": 13
										},
										{
											"begin": 20259,
											"end": 20260,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 20248,
											"end": 20257,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 20244,
											"end": 20261,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 20237,
											"end": 20284,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 20301,
											"end": 20432,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "491"
										},
										{
											"begin": 20427,
											"end": 20431,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 20301,
											"end": 20432,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "418"
										},
										{
											"begin": 20301,
											"end": 20432,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 20301,
											"end": 20432,
											"name": "tag",
											"source": 13,
											"value": "491"
										},
										{
											"begin": 20301,
											"end": 20432,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 20293,
											"end": 20432,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 20293,
											"end": 20432,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 20191,
											"end": 20439,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 20191,
											"end": 20439,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 20191,
											"end": 20439,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 20191,
											"end": 20439,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 20445,
											"end": 20864,
											"name": "tag",
											"source": 13,
											"value": "211"
										},
										{
											"begin": 20445,
											"end": 20864,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 20611,
											"end": 20615,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 20649,
											"end": 20651,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 20638,
											"end": 20647,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 20634,
											"end": 20652,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 20626,
											"end": 20652,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 20626,
											"end": 20652,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 20698,
											"end": 20707,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 20692,
											"end": 20696,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 20688,
											"end": 20708,
											"name": "SUB",
											"source": 13
										},
										{
											"begin": 20684,
											"end": 20685,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 20673,
											"end": 20682,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 20669,
											"end": 20686,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 20662,
											"end": 20709,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 20726,
											"end": 20857,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "493"
										},
										{
											"begin": 20852,
											"end": 20856,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 20726,
											"end": 20857,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "423"
										},
										{
											"begin": 20726,
											"end": 20857,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 20726,
											"end": 20857,
											"name": "tag",
											"source": 13,
											"value": "493"
										},
										{
											"begin": 20726,
											"end": 20857,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 20718,
											"end": 20857,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 20718,
											"end": 20857,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 20616,
											"end": 20864,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 20616,
											"end": 20864,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 20616,
											"end": 20864,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 20616,
											"end": 20864,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 20870,
											"end": 21289,
											"name": "tag",
											"source": 13,
											"value": "200"
										},
										{
											"begin": 20870,
											"end": 21289,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 21036,
											"end": 21040,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 21074,
											"end": 21076,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 21063,
											"end": 21072,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 21059,
											"end": 21077,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 21051,
											"end": 21077,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 21051,
											"end": 21077,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 21123,
											"end": 21132,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 21117,
											"end": 21121,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 21113,
											"end": 21133,
											"name": "SUB",
											"source": 13
										},
										{
											"begin": 21109,
											"end": 21110,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 21098,
											"end": 21107,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 21094,
											"end": 21111,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 21087,
											"end": 21134,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 21151,
											"end": 21282,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "495"
										},
										{
											"begin": 21277,
											"end": 21281,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 21151,
											"end": 21282,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "428"
										},
										{
											"begin": 21151,
											"end": 21282,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 21151,
											"end": 21282,
											"name": "tag",
											"source": 13,
											"value": "495"
										},
										{
											"begin": 21151,
											"end": 21282,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 21143,
											"end": 21282,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 21143,
											"end": 21282,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 21041,
											"end": 21289,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 21041,
											"end": 21289,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 21041,
											"end": 21289,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 21041,
											"end": 21289,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 21295,
											"end": 21733,
											"name": "tag",
											"source": 13,
											"value": "78"
										},
										{
											"begin": 21295,
											"end": 21733,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 21442,
											"end": 21446,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 21480,
											"end": 21482,
											"name": "PUSH",
											"source": 13,
											"value": "60"
										},
										{
											"begin": 21469,
											"end": 21478,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 21465,
											"end": 21483,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 21457,
											"end": 21483,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 21457,
											"end": 21483,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 21493,
											"end": 21562,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "497"
										},
										{
											"begin": 21559,
											"end": 21560,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 21548,
											"end": 21557,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 21544,
											"end": 21561,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 21535,
											"end": 21541,
											"name": "DUP7",
											"source": 13
										},
										{
											"begin": 21493,
											"end": 21562,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "439"
										},
										{
											"begin": 21493,
											"end": 21562,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 21493,
											"end": 21562,
											"name": "tag",
											"source": 13,
											"value": "497"
										},
										{
											"begin": 21493,
											"end": 21562,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 21572,
											"end": 21644,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "498"
										},
										{
											"begin": 21640,
											"end": 21642,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 21629,
											"end": 21638,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 21625,
											"end": 21643,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 21616,
											"end": 21622,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 21572,
											"end": 21644,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "350"
										},
										{
											"begin": 21572,
											"end": 21644,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 21572,
											"end": 21644,
											"name": "tag",
											"source": 13,
											"value": "498"
										},
										{
											"begin": 21572,
											"end": 21644,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 21654,
											"end": 21726,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "499"
										},
										{
											"begin": 21722,
											"end": 21724,
											"name": "PUSH",
											"source": 13,
											"value": "40"
										},
										{
											"begin": 21711,
											"end": 21720,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 21707,
											"end": 21725,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 21698,
											"end": 21704,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 21654,
											"end": 21726,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "450"
										},
										{
											"begin": 21654,
											"end": 21726,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 21654,
											"end": 21726,
											"name": "tag",
											"source": 13,
											"value": "499"
										},
										{
											"begin": 21654,
											"end": 21726,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 21447,
											"end": 21733,
											"name": "SWAP5",
											"source": 13
										},
										{
											"begin": 21447,
											"end": 21733,
											"name": "SWAP4",
											"source": 13
										},
										{
											"begin": 21447,
											"end": 21733,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 21447,
											"end": 21733,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 21447,
											"end": 21733,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 21447,
											"end": 21733,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 21447,
											"end": 21733,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 21739,
											"end": 22844,
											"name": "tag",
											"source": 13,
											"value": "83"
										},
										{
											"begin": 21739,
											"end": 22844,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 22088,
											"end": 22092,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 22126,
											"end": 22129,
											"name": "PUSH",
											"source": 13,
											"value": "A0"
										},
										{
											"begin": 22115,
											"end": 22124,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 22111,
											"end": 22130,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 22103,
											"end": 22130,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 22103,
											"end": 22130,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 22140,
											"end": 22209,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "501"
										},
										{
											"begin": 22206,
											"end": 22207,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 22195,
											"end": 22204,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 22191,
											"end": 22208,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 22182,
											"end": 22188,
											"name": "DUP8",
											"source": 13
										},
										{
											"begin": 22140,
											"end": 22209,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "439"
										},
										{
											"begin": 22140,
											"end": 22209,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 22140,
											"end": 22209,
											"name": "tag",
											"source": 13,
											"value": "501"
										},
										{
											"begin": 22140,
											"end": 22209,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 22219,
											"end": 22297,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "502"
										},
										{
											"begin": 22293,
											"end": 22295,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 22282,
											"end": 22291,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 22278,
											"end": 22296,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 22269,
											"end": 22275,
											"name": "DUP7",
											"source": 13
										},
										{
											"begin": 22219,
											"end": 22297,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "386"
										},
										{
											"begin": 22219,
											"end": 22297,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 22219,
											"end": 22297,
											"name": "tag",
											"source": 13,
											"value": "502"
										},
										{
											"begin": 22219,
											"end": 22297,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 22344,
											"end": 22353,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 22338,
											"end": 22342,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 22334,
											"end": 22354,
											"name": "SUB",
											"source": 13
										},
										{
											"begin": 22329,
											"end": 22331,
											"name": "PUSH",
											"source": 13,
											"value": "40"
										},
										{
											"begin": 22318,
											"end": 22327,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 22314,
											"end": 22332,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 22307,
											"end": 22355,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 22372,
											"end": 22448,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "503"
										},
										{
											"begin": 22443,
											"end": 22447,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 22434,
											"end": 22440,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 22372,
											"end": 22448,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "373"
										},
										{
											"begin": 22372,
											"end": 22448,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 22372,
											"end": 22448,
											"name": "tag",
											"source": 13,
											"value": "503"
										},
										{
											"begin": 22372,
											"end": 22448,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 22364,
											"end": 22448,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 22364,
											"end": 22448,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 22495,
											"end": 22504,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 22489,
											"end": 22493,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 22485,
											"end": 22505,
											"name": "SUB",
											"source": 13
										},
										{
											"begin": 22480,
											"end": 22482,
											"name": "PUSH",
											"source": 13,
											"value": "60"
										},
										{
											"begin": 22469,
											"end": 22478,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 22465,
											"end": 22483,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 22458,
											"end": 22506,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 22523,
											"end": 22653,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "504"
										},
										{
											"begin": 22648,
											"end": 22652,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 22523,
											"end": 22653,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "403"
										},
										{
											"begin": 22523,
											"end": 22653,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 22523,
											"end": 22653,
											"name": "tag",
											"source": 13,
											"value": "504"
										},
										{
											"begin": 22523,
											"end": 22653,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 22515,
											"end": 22653,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 22515,
											"end": 22653,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 22701,
											"end": 22710,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 22695,
											"end": 22699,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 22691,
											"end": 22711,
											"name": "SUB",
											"source": 13
										},
										{
											"begin": 22685,
											"end": 22688,
											"name": "PUSH",
											"source": 13,
											"value": "80"
										},
										{
											"begin": 22674,
											"end": 22683,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 22670,
											"end": 22689,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 22663,
											"end": 22712,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 22729,
											"end": 22837,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "505"
										},
										{
											"begin": 22832,
											"end": 22836,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 22823,
											"end": 22829,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 22729,
											"end": 22837,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "433"
										},
										{
											"begin": 22729,
											"end": 22837,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 22729,
											"end": 22837,
											"name": "tag",
											"source": 13,
											"value": "505"
										},
										{
											"begin": 22729,
											"end": 22837,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 22721,
											"end": 22837,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 22721,
											"end": 22837,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 22093,
											"end": 22844,
											"name": "SWAP6",
											"source": 13
										},
										{
											"begin": 22093,
											"end": 22844,
											"name": "SWAP5",
											"source": 13
										},
										{
											"begin": 22093,
											"end": 22844,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 22093,
											"end": 22844,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 22093,
											"end": 22844,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 22093,
											"end": 22844,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 22093,
											"end": 22844,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 22093,
											"end": 22844,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 22850,
											"end": 24307,
											"name": "tag",
											"source": 13,
											"value": "146"
										},
										{
											"begin": 22850,
											"end": 24307,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 23265,
											"end": 23269,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 23303,
											"end": 23306,
											"name": "PUSH",
											"source": 13,
											"value": "120"
										},
										{
											"begin": 23292,
											"end": 23301,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 23288,
											"end": 23307,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 23280,
											"end": 23307,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 23280,
											"end": 23307,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 23317,
											"end": 23386,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "507"
										},
										{
											"begin": 23383,
											"end": 23384,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 23372,
											"end": 23381,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 23368,
											"end": 23385,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 23359,
											"end": 23365,
											"name": "DUP13",
											"source": 13
										},
										{
											"begin": 23317,
											"end": 23386,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "439"
										},
										{
											"begin": 23317,
											"end": 23386,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 23317,
											"end": 23386,
											"name": "tag",
											"source": 13,
											"value": "507"
										},
										{
											"begin": 23317,
											"end": 23386,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 23396,
											"end": 23467,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "508"
										},
										{
											"begin": 23463,
											"end": 23465,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 23452,
											"end": 23461,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 23448,
											"end": 23466,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 23439,
											"end": 23445,
											"name": "DUP12",
											"source": 13
										},
										{
											"begin": 23396,
											"end": 23467,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "443"
										},
										{
											"begin": 23396,
											"end": 23467,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 23396,
											"end": 23467,
											"name": "tag",
											"source": 13,
											"value": "508"
										},
										{
											"begin": 23396,
											"end": 23467,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 23477,
											"end": 23548,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "509"
										},
										{
											"begin": 23544,
											"end": 23546,
											"name": "PUSH",
											"source": 13,
											"value": "40"
										},
										{
											"begin": 23533,
											"end": 23542,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 23529,
											"end": 23547,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 23520,
											"end": 23526,
											"name": "DUP11",
											"source": 13
										},
										{
											"begin": 23477,
											"end": 23548,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "443"
										},
										{
											"begin": 23477,
											"end": 23548,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 23477,
											"end": 23548,
											"name": "tag",
											"source": 13,
											"value": "509"
										},
										{
											"begin": 23477,
											"end": 23548,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 23558,
											"end": 23646,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "510"
										},
										{
											"begin": 23642,
											"end": 23644,
											"name": "PUSH",
											"source": 13,
											"value": "60"
										},
										{
											"begin": 23631,
											"end": 23640,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 23627,
											"end": 23645,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 23618,
											"end": 23624,
											"name": "DUP10",
											"source": 13
										},
										{
											"begin": 23558,
											"end": 23646,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "346"
										},
										{
											"begin": 23558,
											"end": 23646,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 23558,
											"end": 23646,
											"name": "tag",
											"source": 13,
											"value": "510"
										},
										{
											"begin": 23558,
											"end": 23646,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 23656,
											"end": 23729,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "511"
										},
										{
											"begin": 23724,
											"end": 23727,
											"name": "PUSH",
											"source": 13,
											"value": "80"
										},
										{
											"begin": 23713,
											"end": 23722,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 23709,
											"end": 23728,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 23700,
											"end": 23706,
											"name": "DUP9",
											"source": 13
										},
										{
											"begin": 23656,
											"end": 23729,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "450"
										},
										{
											"begin": 23656,
											"end": 23729,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 23656,
											"end": 23729,
											"name": "tag",
											"source": 13,
											"value": "511"
										},
										{
											"begin": 23656,
											"end": 23729,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 23739,
											"end": 23812,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "512"
										},
										{
											"begin": 23807,
											"end": 23810,
											"name": "PUSH",
											"source": 13,
											"value": "A0"
										},
										{
											"begin": 23796,
											"end": 23805,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 23792,
											"end": 23811,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 23783,
											"end": 23789,
											"name": "DUP8",
											"source": 13
										},
										{
											"begin": 23739,
											"end": 23812,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "450"
										},
										{
											"begin": 23739,
											"end": 23812,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 23739,
											"end": 23812,
											"name": "tag",
											"source": 13,
											"value": "512"
										},
										{
											"begin": 23739,
											"end": 23812,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 23860,
											"end": 23869,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 23854,
											"end": 23858,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 23850,
											"end": 23870,
											"name": "SUB",
											"source": 13
										},
										{
											"begin": 23844,
											"end": 23847,
											"name": "PUSH",
											"source": 13,
											"value": "C0"
										},
										{
											"begin": 23833,
											"end": 23842,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 23829,
											"end": 23848,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 23822,
											"end": 23871,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 23888,
											"end": 23996,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "513"
										},
										{
											"begin": 23991,
											"end": 23995,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 23982,
											"end": 23988,
											"name": "DUP7",
											"source": 13
										},
										{
											"begin": 23888,
											"end": 23996,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "433"
										},
										{
											"begin": 23888,
											"end": 23996,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 23888,
											"end": 23996,
											"name": "tag",
											"source": 13,
											"value": "513"
										},
										{
											"begin": 23888,
											"end": 23996,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 23880,
											"end": 23996,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 23880,
											"end": 23996,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 24044,
											"end": 24053,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 24038,
											"end": 24042,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 24034,
											"end": 24054,
											"name": "SUB",
											"source": 13
										},
										{
											"begin": 24028,
											"end": 24031,
											"name": "PUSH",
											"source": 13,
											"value": "E0"
										},
										{
											"begin": 24017,
											"end": 24026,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 24013,
											"end": 24032,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 24006,
											"end": 24055,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 24072,
											"end": 24148,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "514"
										},
										{
											"begin": 24143,
											"end": 24147,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 24134,
											"end": 24140,
											"name": "DUP6",
											"source": 13
										},
										{
											"begin": 24072,
											"end": 24148,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "373"
										},
										{
											"begin": 24072,
											"end": 24148,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 24072,
											"end": 24148,
											"name": "tag",
											"source": 13,
											"value": "514"
										},
										{
											"begin": 24072,
											"end": 24148,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 24064,
											"end": 24148,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 24064,
											"end": 24148,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 24196,
											"end": 24205,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 24190,
											"end": 24194,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 24186,
											"end": 24206,
											"name": "SUB",
											"source": 13
										},
										{
											"begin": 24180,
											"end": 24183,
											"name": "PUSH",
											"source": 13,
											"value": "100"
										},
										{
											"begin": 24169,
											"end": 24178,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 24165,
											"end": 24184,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 24158,
											"end": 24207,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 24224,
											"end": 24300,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "515"
										},
										{
											"begin": 24295,
											"end": 24299,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 24286,
											"end": 24292,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 24224,
											"end": 24300,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "373"
										},
										{
											"begin": 24224,
											"end": 24300,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 24224,
											"end": 24300,
											"name": "tag",
											"source": 13,
											"value": "515"
										},
										{
											"begin": 24224,
											"end": 24300,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 24216,
											"end": 24300,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 24216,
											"end": 24300,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 23270,
											"end": 24307,
											"name": "SWAP11",
											"source": 13
										},
										{
											"begin": 23270,
											"end": 24307,
											"name": "SWAP10",
											"source": 13
										},
										{
											"begin": 23270,
											"end": 24307,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 23270,
											"end": 24307,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 23270,
											"end": 24307,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 23270,
											"end": 24307,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 23270,
											"end": 24307,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 23270,
											"end": 24307,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 23270,
											"end": 24307,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 23270,
											"end": 24307,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 23270,
											"end": 24307,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 23270,
											"end": 24307,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 23270,
											"end": 24307,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 24313,
											"end": 24535,
											"name": "tag",
											"source": 13,
											"value": "32"
										},
										{
											"begin": 24313,
											"end": 24535,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 24406,
											"end": 24410,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 24444,
											"end": 24446,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 24433,
											"end": 24442,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 24429,
											"end": 24447,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 24421,
											"end": 24447,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 24421,
											"end": 24447,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 24457,
											"end": 24528,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "517"
										},
										{
											"begin": 24525,
											"end": 24526,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 24514,
											"end": 24523,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 24510,
											"end": 24527,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 24501,
											"end": 24507,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 24457,
											"end": 24528,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "450"
										},
										{
											"begin": 24457,
											"end": 24528,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 24457,
											"end": 24528,
											"name": "tag",
											"source": 13,
											"value": "517"
										},
										{
											"begin": 24457,
											"end": 24528,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 24411,
											"end": 24535,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 24411,
											"end": 24535,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 24411,
											"end": 24535,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 24411,
											"end": 24535,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 24411,
											"end": 24535,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 24541,
											"end": 24670,
											"name": "tag",
											"source": 13,
											"value": "245"
										},
										{
											"begin": 24541,
											"end": 24670,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 24575,
											"end": 24581,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 24602,
											"end": 24622,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "519"
										},
										{
											"begin": 24602,
											"end": 24622,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "520"
										},
										{
											"begin": 24602,
											"end": 24622,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 24602,
											"end": 24622,
											"name": "tag",
											"source": 13,
											"value": "519"
										},
										{
											"begin": 24602,
											"end": 24622,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 24592,
											"end": 24622,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 24592,
											"end": 24622,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 24631,
											"end": 24664,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "521"
										},
										{
											"begin": 24659,
											"end": 24663,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 24651,
											"end": 24657,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 24631,
											"end": 24664,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "522"
										},
										{
											"begin": 24631,
											"end": 24664,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 24631,
											"end": 24664,
											"name": "tag",
											"source": 13,
											"value": "521"
										},
										{
											"begin": 24631,
											"end": 24664,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 24582,
											"end": 24670,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 24582,
											"end": 24670,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 24582,
											"end": 24670,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 24582,
											"end": 24670,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 24676,
											"end": 24751,
											"name": "tag",
											"source": 13,
											"value": "520"
										},
										{
											"begin": 24676,
											"end": 24751,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 24709,
											"end": 24715,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 24742,
											"end": 24744,
											"name": "PUSH",
											"source": 13,
											"value": "40"
										},
										{
											"begin": 24736,
											"end": 24745,
											"name": "MLOAD",
											"source": 13
										},
										{
											"begin": 24726,
											"end": 24745,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 24726,
											"end": 24745,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 24716,
											"end": 24751,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 24716,
											"end": 24751,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 24757,
											"end": 25064,
											"name": "tag",
											"source": 13,
											"value": "244"
										},
										{
											"begin": 24757,
											"end": 25064,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 24818,
											"end": 24822,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 24908,
											"end": 24926,
											"name": "PUSH",
											"source": 13,
											"value": "FFFFFFFFFFFFFFFF"
										},
										{
											"begin": 24900,
											"end": 24906,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 24897,
											"end": 24927,
											"name": "GT",
											"source": 13
										},
										{
											"begin": 24894,
											"end": 24896,
											"name": "ISZERO",
											"source": 13
										},
										{
											"begin": 24894,
											"end": 24896,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "525"
										},
										{
											"begin": 24894,
											"end": 24896,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 24930,
											"end": 24948,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "526"
										},
										{
											"begin": 24930,
											"end": 24948,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "527"
										},
										{
											"begin": 24930,
											"end": 24948,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 24930,
											"end": 24948,
											"name": "tag",
											"source": 13,
											"value": "526"
										},
										{
											"begin": 24930,
											"end": 24948,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 24894,
											"end": 24896,
											"name": "tag",
											"source": 13,
											"value": "525"
										},
										{
											"begin": 24894,
											"end": 24896,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 24968,
											"end": 24997,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "528"
										},
										{
											"begin": 24990,
											"end": 24996,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 24968,
											"end": 24997,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "372"
										},
										{
											"begin": 24968,
											"end": 24997,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 24968,
											"end": 24997,
											"name": "tag",
											"source": 13,
											"value": "528"
										},
										{
											"begin": 24968,
											"end": 24997,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 24960,
											"end": 24997,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 24960,
											"end": 24997,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 25052,
											"end": 25056,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 25046,
											"end": 25050,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 25042,
											"end": 25057,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 25034,
											"end": 25057,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 25034,
											"end": 25057,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 24823,
											"end": 25064,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 24823,
											"end": 25064,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 24823,
											"end": 25064,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 24823,
											"end": 25064,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 25070,
											"end": 25168,
											"name": "tag",
											"source": 13,
											"value": "366"
										},
										{
											"begin": 25070,
											"end": 25168,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 25121,
											"end": 25127,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 25155,
											"end": 25160,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 25149,
											"end": 25161,
											"name": "MLOAD",
											"source": 13
										},
										{
											"begin": 25139,
											"end": 25161,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 25139,
											"end": 25161,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 25128,
											"end": 25168,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 25128,
											"end": 25168,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 25128,
											"end": 25168,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 25128,
											"end": 25168,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 25174,
											"end": 25273,
											"name": "tag",
											"source": 13,
											"value": "393"
										},
										{
											"begin": 25174,
											"end": 25273,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 25226,
											"end": 25232,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 25260,
											"end": 25265,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 25254,
											"end": 25266,
											"name": "MLOAD",
											"source": 13
										},
										{
											"begin": 25244,
											"end": 25266,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 25244,
											"end": 25266,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 25233,
											"end": 25273,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 25233,
											"end": 25273,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 25233,
											"end": 25273,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 25233,
											"end": 25273,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 25279,
											"end": 25437,
											"name": "tag",
											"source": 13,
											"value": "368"
										},
										{
											"begin": 25279,
											"end": 25437,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 25352,
											"end": 25363,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 25386,
											"end": 25392,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 25381,
											"end": 25384,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 25374,
											"end": 25393,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 25426,
											"end": 25430,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 25421,
											"end": 25424,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 25417,
											"end": 25431,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 25402,
											"end": 25431,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 25402,
											"end": 25431,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 25364,
											"end": 25437,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 25364,
											"end": 25437,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 25364,
											"end": 25437,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 25364,
											"end": 25437,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 25364,
											"end": 25437,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 25443,
											"end": 25611,
											"name": "tag",
											"source": 13,
											"value": "377"
										},
										{
											"begin": 25443,
											"end": 25611,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 25526,
											"end": 25537,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 25560,
											"end": 25566,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 25555,
											"end": 25558,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 25548,
											"end": 25567,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 25600,
											"end": 25604,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 25595,
											"end": 25598,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 25591,
											"end": 25605,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 25576,
											"end": 25605,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 25576,
											"end": 25605,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 25538,
											"end": 25611,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 25538,
											"end": 25611,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 25538,
											"end": 25611,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 25538,
											"end": 25611,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 25538,
											"end": 25611,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 25617,
											"end": 25764,
											"name": "tag",
											"source": 13,
											"value": "384"
										},
										{
											"begin": 25617,
											"end": 25764,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 25718,
											"end": 25729,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 25755,
											"end": 25758,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 25740,
											"end": 25758,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 25740,
											"end": 25758,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 25730,
											"end": 25764,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 25730,
											"end": 25764,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 25730,
											"end": 25764,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 25730,
											"end": 25764,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 25730,
											"end": 25764,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 25770,
											"end": 25939,
											"name": "tag",
											"source": 13,
											"value": "395"
										},
										{
											"begin": 25770,
											"end": 25939,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 25854,
											"end": 25865,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 25888,
											"end": 25894,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 25883,
											"end": 25886,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 25876,
											"end": 25895,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 25928,
											"end": 25932,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 25923,
											"end": 25926,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 25919,
											"end": 25933,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 25904,
											"end": 25933,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 25904,
											"end": 25933,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 25866,
											"end": 25939,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 25866,
											"end": 25939,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 25866,
											"end": 25939,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 25866,
											"end": 25939,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 25866,
											"end": 25939,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 25945,
											"end": 26130,
											"name": "tag",
											"source": 13,
											"value": "120"
										},
										{
											"begin": 25945,
											"end": 26130,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 25985,
											"end": 25986,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 26002,
											"end": 26022,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "536"
										},
										{
											"begin": 26020,
											"end": 26021,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 26002,
											"end": 26022,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "449"
										},
										{
											"begin": 26002,
											"end": 26022,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 26002,
											"end": 26022,
											"name": "tag",
											"source": 13,
											"value": "536"
										},
										{
											"begin": 26002,
											"end": 26022,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 25997,
											"end": 26022,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 25997,
											"end": 26022,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 26036,
											"end": 26056,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "537"
										},
										{
											"begin": 26054,
											"end": 26055,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 26036,
											"end": 26056,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "449"
										},
										{
											"begin": 26036,
											"end": 26056,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 26036,
											"end": 26056,
											"name": "tag",
											"source": 13,
											"value": "537"
										},
										{
											"begin": 26036,
											"end": 26056,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 26031,
											"end": 26056,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 26031,
											"end": 26056,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 26075,
											"end": 26076,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 26065,
											"end": 26067,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "538"
										},
										{
											"begin": 26065,
											"end": 26067,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 26080,
											"end": 26098,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "539"
										},
										{
											"begin": 26080,
											"end": 26098,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "540"
										},
										{
											"begin": 26080,
											"end": 26098,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 26080,
											"end": 26098,
											"name": "tag",
											"source": 13,
											"value": "539"
										},
										{
											"begin": 26080,
											"end": 26098,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 26065,
											"end": 26067,
											"name": "tag",
											"source": 13,
											"value": "538"
										},
										{
											"begin": 26065,
											"end": 26067,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 26122,
											"end": 26123,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 26119,
											"end": 26120,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 26115,
											"end": 26124,
											"name": "DIV",
											"source": 13
										},
										{
											"begin": 26110,
											"end": 26124,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 26110,
											"end": 26124,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 25987,
											"end": 26130,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 25987,
											"end": 26130,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 25987,
											"end": 26130,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 25987,
											"end": 26130,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 25987,
											"end": 26130,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 26136,
											"end": 26484,
											"name": "tag",
											"source": 13,
											"value": "118"
										},
										{
											"begin": 26136,
											"end": 26484,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 26176,
											"end": 26183,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 26199,
											"end": 26219,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "542"
										},
										{
											"begin": 26217,
											"end": 26218,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 26199,
											"end": 26219,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "449"
										},
										{
											"begin": 26199,
											"end": 26219,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 26199,
											"end": 26219,
											"name": "tag",
											"source": 13,
											"value": "542"
										},
										{
											"begin": 26199,
											"end": 26219,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 26194,
											"end": 26219,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 26194,
											"end": 26219,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 26233,
											"end": 26253,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "543"
										},
										{
											"begin": 26251,
											"end": 26252,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 26233,
											"end": 26253,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "449"
										},
										{
											"begin": 26233,
											"end": 26253,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 26233,
											"end": 26253,
											"name": "tag",
											"source": 13,
											"value": "543"
										},
										{
											"begin": 26233,
											"end": 26253,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 26228,
											"end": 26253,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 26228,
											"end": 26253,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 26421,
											"end": 26422,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 26353,
											"end": 26419,
											"name": "PUSH",
											"source": 13,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 26349,
											"end": 26423,
											"name": "DIV",
											"source": 13
										},
										{
											"begin": 26346,
											"end": 26347,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 26343,
											"end": 26424,
											"name": "GT",
											"source": 13
										},
										{
											"begin": 26338,
											"end": 26339,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 26331,
											"end": 26340,
											"name": "ISZERO",
											"source": 13
										},
										{
											"begin": 26324,
											"end": 26341,
											"name": "ISZERO",
											"source": 13
										},
										{
											"begin": 26320,
											"end": 26425,
											"name": "AND",
											"source": 13
										},
										{
											"begin": 26317,
											"end": 26319,
											"name": "ISZERO",
											"source": 13
										},
										{
											"begin": 26317,
											"end": 26319,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "544"
										},
										{
											"begin": 26317,
											"end": 26319,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 26428,
											"end": 26446,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "545"
										},
										{
											"begin": 26428,
											"end": 26446,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "546"
										},
										{
											"begin": 26428,
											"end": 26446,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 26428,
											"end": 26446,
											"name": "tag",
											"source": 13,
											"value": "545"
										},
										{
											"begin": 26428,
											"end": 26446,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 26317,
											"end": 26319,
											"name": "tag",
											"source": 13,
											"value": "544"
										},
										{
											"begin": 26317,
											"end": 26319,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 26476,
											"end": 26477,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 26473,
											"end": 26474,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 26469,
											"end": 26478,
											"name": "MUL",
											"source": 13
										},
										{
											"begin": 26458,
											"end": 26478,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 26458,
											"end": 26478,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 26184,
											"end": 26484,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 26184,
											"end": 26484,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 26184,
											"end": 26484,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 26184,
											"end": 26484,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 26184,
											"end": 26484,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 26490,
											"end": 26681,
											"name": "tag",
											"source": 13,
											"value": "116"
										},
										{
											"begin": 26490,
											"end": 26681,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 26530,
											"end": 26534,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 26550,
											"end": 26570,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "548"
										},
										{
											"begin": 26568,
											"end": 26569,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 26550,
											"end": 26570,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "449"
										},
										{
											"begin": 26550,
											"end": 26570,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 26550,
											"end": 26570,
											"name": "tag",
											"source": 13,
											"value": "548"
										},
										{
											"begin": 26550,
											"end": 26570,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 26545,
											"end": 26570,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 26545,
											"end": 26570,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 26584,
											"end": 26604,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "549"
										},
										{
											"begin": 26602,
											"end": 26603,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 26584,
											"end": 26604,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "449"
										},
										{
											"begin": 26584,
											"end": 26604,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 26584,
											"end": 26604,
											"name": "tag",
											"source": 13,
											"value": "549"
										},
										{
											"begin": 26584,
											"end": 26604,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 26579,
											"end": 26604,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 26579,
											"end": 26604,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 26623,
											"end": 26624,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 26620,
											"end": 26621,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 26617,
											"end": 26625,
											"name": "LT",
											"source": 13
										},
										{
											"begin": 26614,
											"end": 26616,
											"name": "ISZERO",
											"source": 13
										},
										{
											"begin": 26614,
											"end": 26616,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "550"
										},
										{
											"begin": 26614,
											"end": 26616,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 26628,
											"end": 26646,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "551"
										},
										{
											"begin": 26628,
											"end": 26646,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "546"
										},
										{
											"begin": 26628,
											"end": 26646,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 26628,
											"end": 26646,
											"name": "tag",
											"source": 13,
											"value": "551"
										},
										{
											"begin": 26628,
											"end": 26646,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 26614,
											"end": 26616,
											"name": "tag",
											"source": 13,
											"value": "550"
										},
										{
											"begin": 26614,
											"end": 26616,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 26673,
											"end": 26674,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 26670,
											"end": 26671,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 26666,
											"end": 26675,
											"name": "SUB",
											"source": 13
										},
										{
											"begin": 26658,
											"end": 26675,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 26658,
											"end": 26675,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 26535,
											"end": 26681,
											"name": "SWAP3",
											"source": 13
										},
										{
											"begin": 26535,
											"end": 26681,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 26535,
											"end": 26681,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 26535,
											"end": 26681,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 26535,
											"end": 26681,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 26687,
											"end": 26783,
											"name": "tag",
											"source": 13,
											"value": "353"
										},
										{
											"begin": 26687,
											"end": 26783,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 26724,
											"end": 26731,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 26753,
											"end": 26777,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "553"
										},
										{
											"begin": 26771,
											"end": 26776,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 26753,
											"end": 26777,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "554"
										},
										{
											"begin": 26753,
											"end": 26777,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 26753,
											"end": 26777,
											"name": "tag",
											"source": 13,
											"value": "553"
										},
										{
											"begin": 26753,
											"end": 26777,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 26742,
											"end": 26777,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 26742,
											"end": 26777,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 26732,
											"end": 26783,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 26732,
											"end": 26783,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 26732,
											"end": 26783,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 26732,
											"end": 26783,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 26789,
											"end": 26893,
											"name": "tag",
											"source": 13,
											"value": "349"
										},
										{
											"begin": 26789,
											"end": 26893,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 26834,
											"end": 26841,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 26863,
											"end": 26887,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "556"
										},
										{
											"begin": 26881,
											"end": 26886,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 26863,
											"end": 26887,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "554"
										},
										{
											"begin": 26863,
											"end": 26887,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 26863,
											"end": 26887,
											"name": "tag",
											"source": 13,
											"value": "556"
										},
										{
											"begin": 26863,
											"end": 26887,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 26852,
											"end": 26887,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 26852,
											"end": 26887,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 26842,
											"end": 26893,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 26842,
											"end": 26893,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 26842,
											"end": 26893,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 26842,
											"end": 26893,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 26899,
											"end": 26989,
											"name": "tag",
											"source": 13,
											"value": "362"
										},
										{
											"begin": 26899,
											"end": 26989,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 26933,
											"end": 26940,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 26976,
											"end": 26981,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 26969,
											"end": 26982,
											"name": "ISZERO",
											"source": 13
										},
										{
											"begin": 26962,
											"end": 26983,
											"name": "ISZERO",
											"source": 13
										},
										{
											"begin": 26951,
											"end": 26983,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 26951,
											"end": 26983,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 26941,
											"end": 26989,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 26941,
											"end": 26989,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 26941,
											"end": 26989,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 26941,
											"end": 26989,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 26995,
											"end": 27084,
											"name": "tag",
											"source": 13,
											"value": "442"
										},
										{
											"begin": 26995,
											"end": 27084,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 27031,
											"end": 27038,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 27071,
											"end": 27077,
											"name": "PUSH",
											"source": 13,
											"value": "FFFF"
										},
										{
											"begin": 27064,
											"end": 27069,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 27060,
											"end": 27078,
											"name": "AND",
											"source": 13
										},
										{
											"begin": 27049,
											"end": 27078,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 27049,
											"end": 27078,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 27039,
											"end": 27084,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 27039,
											"end": 27084,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 27039,
											"end": 27084,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 27039,
											"end": 27084,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 27090,
											"end": 27216,
											"name": "tag",
											"source": 13,
											"value": "554"
										},
										{
											"begin": 27090,
											"end": 27216,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 27127,
											"end": 27134,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 27167,
											"end": 27209,
											"name": "PUSH",
											"source": 13,
											"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
										},
										{
											"begin": 27160,
											"end": 27165,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 27156,
											"end": 27210,
											"name": "AND",
											"source": 13
										},
										{
											"begin": 27145,
											"end": 27210,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 27145,
											"end": 27210,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 27135,
											"end": 27216,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 27135,
											"end": 27216,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 27135,
											"end": 27216,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 27135,
											"end": 27216,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 27222,
											"end": 27299,
											"name": "tag",
											"source": 13,
											"value": "449"
										},
										{
											"begin": 27222,
											"end": 27299,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 27259,
											"end": 27266,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 27288,
											"end": 27293,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 27277,
											"end": 27293,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 27277,
											"end": 27293,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 27267,
											"end": 27299,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 27267,
											"end": 27299,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 27267,
											"end": 27299,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 27267,
											"end": 27299,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 27305,
											"end": 27391,
											"name": "tag",
											"source": 13,
											"value": "561"
										},
										{
											"begin": 27305,
											"end": 27391,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 27340,
											"end": 27347,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 27380,
											"end": 27384,
											"name": "PUSH",
											"source": 13,
											"value": "FF"
										},
										{
											"begin": 27373,
											"end": 27378,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 27369,
											"end": 27385,
											"name": "AND",
											"source": 13
										},
										{
											"begin": 27358,
											"end": 27385,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 27358,
											"end": 27385,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 27348,
											"end": 27391,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 27348,
											"end": 27391,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 27348,
											"end": 27391,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 27348,
											"end": 27391,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 27397,
											"end": 27531,
											"name": "tag",
											"source": 13,
											"value": "345"
										},
										{
											"begin": 27397,
											"end": 27531,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 27455,
											"end": 27464,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 27488,
											"end": 27525,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "564"
										},
										{
											"begin": 27519,
											"end": 27524,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 27488,
											"end": 27525,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "565"
										},
										{
											"begin": 27488,
											"end": 27525,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 27488,
											"end": 27525,
											"name": "tag",
											"source": 13,
											"value": "564"
										},
										{
											"begin": 27488,
											"end": 27525,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 27475,
											"end": 27525,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 27475,
											"end": 27525,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 27465,
											"end": 27531,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 27465,
											"end": 27531,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 27465,
											"end": 27531,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 27465,
											"end": 27531,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 27537,
											"end": 27654,
											"name": "tag",
											"source": 13,
											"value": "389"
										},
										{
											"begin": 27537,
											"end": 27654,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 27593,
											"end": 27602,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 27626,
											"end": 27648,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "567"
										},
										{
											"begin": 27642,
											"end": 27647,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 27626,
											"end": 27648,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "561"
										},
										{
											"begin": 27626,
											"end": 27648,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 27626,
											"end": 27648,
											"name": "tag",
											"source": 13,
											"value": "567"
										},
										{
											"begin": 27626,
											"end": 27648,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 27613,
											"end": 27648,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 27613,
											"end": 27648,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 27603,
											"end": 27654,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 27603,
											"end": 27654,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 27603,
											"end": 27654,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 27603,
											"end": 27654,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 27660,
											"end": 27786,
											"name": "tag",
											"source": 13,
											"value": "565"
										},
										{
											"begin": 27660,
											"end": 27786,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 27710,
											"end": 27719,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 27743,
											"end": 27780,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "569"
										},
										{
											"begin": 27774,
											"end": 27779,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 27743,
											"end": 27780,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "570"
										},
										{
											"begin": 27743,
											"end": 27780,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 27743,
											"end": 27780,
											"name": "tag",
											"source": 13,
											"value": "569"
										},
										{
											"begin": 27743,
											"end": 27780,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 27730,
											"end": 27780,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 27730,
											"end": 27780,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 27720,
											"end": 27786,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 27720,
											"end": 27786,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 27720,
											"end": 27786,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 27720,
											"end": 27786,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 27792,
											"end": 27905,
											"name": "tag",
											"source": 13,
											"value": "570"
										},
										{
											"begin": 27792,
											"end": 27905,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 27842,
											"end": 27851,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 27875,
											"end": 27899,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "572"
										},
										{
											"begin": 27893,
											"end": 27898,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 27875,
											"end": 27899,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "554"
										},
										{
											"begin": 27875,
											"end": 27899,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 27875,
											"end": 27899,
											"name": "tag",
											"source": 13,
											"value": "572"
										},
										{
											"begin": 27875,
											"end": 27899,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 27862,
											"end": 27899,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 27862,
											"end": 27899,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 27852,
											"end": 27905,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 27852,
											"end": 27905,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 27852,
											"end": 27905,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 27852,
											"end": 27905,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 27911,
											"end": 28022,
											"name": "tag",
											"source": 13,
											"value": "446"
										},
										{
											"begin": 27911,
											"end": 28022,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 27960,
											"end": 27969,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 27993,
											"end": 28016,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "574"
										},
										{
											"begin": 28010,
											"end": 28015,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 27993,
											"end": 28016,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "442"
										},
										{
											"begin": 27993,
											"end": 28016,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 27993,
											"end": 28016,
											"name": "tag",
											"source": 13,
											"value": "574"
										},
										{
											"begin": 27993,
											"end": 28016,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 27980,
											"end": 28016,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 27980,
											"end": 28016,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 27970,
											"end": 28022,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 27970,
											"end": 28022,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 27970,
											"end": 28022,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 27970,
											"end": 28022,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 28028,
											"end": 28182,
											"name": "tag",
											"source": 13,
											"value": "248"
										},
										{
											"begin": 28028,
											"end": 28182,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 28112,
											"end": 28118,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 28107,
											"end": 28110,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 28102,
											"end": 28105,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 28089,
											"end": 28119,
											"name": "CALLDATACOPY",
											"source": 13
										},
										{
											"begin": 28174,
											"end": 28175,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 28165,
											"end": 28171,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 28160,
											"end": 28163,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 28156,
											"end": 28172,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 28149,
											"end": 28176,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 28079,
											"end": 28182,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 28079,
											"end": 28182,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 28079,
											"end": 28182,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 28079,
											"end": 28182,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 28188,
											"end": 28495,
											"name": "tag",
											"source": 13,
											"value": "370"
										},
										{
											"begin": 28188,
											"end": 28495,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 28256,
											"end": 28257,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 28266,
											"end": 28379,
											"name": "tag",
											"source": 13,
											"value": "577"
										},
										{
											"begin": 28266,
											"end": 28379,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 28280,
											"end": 28286,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 28277,
											"end": 28278,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 28274,
											"end": 28287,
											"name": "LT",
											"source": 13
										},
										{
											"begin": 28266,
											"end": 28379,
											"name": "ISZERO",
											"source": 13
										},
										{
											"begin": 28266,
											"end": 28379,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "579"
										},
										{
											"begin": 28266,
											"end": 28379,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 28365,
											"end": 28366,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 28360,
											"end": 28363,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 28356,
											"end": 28367,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 28350,
											"end": 28368,
											"name": "MLOAD",
											"source": 13
										},
										{
											"begin": 28346,
											"end": 28347,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 28341,
											"end": 28344,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 28337,
											"end": 28348,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 28330,
											"end": 28369,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 28302,
											"end": 28304,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 28299,
											"end": 28300,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 28295,
											"end": 28305,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 28290,
											"end": 28305,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 28290,
											"end": 28305,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 28266,
											"end": 28379,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "577"
										},
										{
											"begin": 28266,
											"end": 28379,
											"name": "JUMP",
											"source": 13
										},
										{
											"begin": 28266,
											"end": 28379,
											"name": "tag",
											"source": 13,
											"value": "579"
										},
										{
											"begin": 28266,
											"end": 28379,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 28397,
											"end": 28403,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 28394,
											"end": 28395,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 28391,
											"end": 28404,
											"name": "GT",
											"source": 13
										},
										{
											"begin": 28388,
											"end": 28390,
											"name": "ISZERO",
											"source": 13
										},
										{
											"begin": 28388,
											"end": 28390,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "580"
										},
										{
											"begin": 28388,
											"end": 28390,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 28477,
											"end": 28478,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 28468,
											"end": 28474,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 28463,
											"end": 28466,
											"name": "DUP5",
											"source": 13
										},
										{
											"begin": 28459,
											"end": 28475,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 28452,
											"end": 28479,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 28388,
											"end": 28390,
											"name": "tag",
											"source": 13,
											"value": "580"
										},
										{
											"begin": 28388,
											"end": 28390,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 28237,
											"end": 28495,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 28237,
											"end": 28495,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 28237,
											"end": 28495,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 28237,
											"end": 28495,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 28237,
											"end": 28495,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 28501,
											"end": 28782,
											"name": "tag",
											"source": 13,
											"value": "522"
										},
										{
											"begin": 28501,
											"end": 28782,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 28584,
											"end": 28611,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "582"
										},
										{
											"begin": 28606,
											"end": 28610,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 28584,
											"end": 28611,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "372"
										},
										{
											"begin": 28584,
											"end": 28611,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 28584,
											"end": 28611,
											"name": "tag",
											"source": 13,
											"value": "582"
										},
										{
											"begin": 28584,
											"end": 28611,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 28576,
											"end": 28582,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 28572,
											"end": 28612,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 28714,
											"end": 28720,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 28702,
											"end": 28712,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 28699,
											"end": 28721,
											"name": "LT",
											"source": 13
										},
										{
											"begin": 28678,
											"end": 28696,
											"name": "PUSH",
											"source": 13,
											"value": "FFFFFFFFFFFFFFFF"
										},
										{
											"begin": 28666,
											"end": 28676,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 28663,
											"end": 28697,
											"name": "GT",
											"source": 13
										},
										{
											"begin": 28660,
											"end": 28722,
											"name": "OR",
											"source": 13
										},
										{
											"begin": 28657,
											"end": 28659,
											"name": "ISZERO",
											"source": 13
										},
										{
											"begin": 28657,
											"end": 28659,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "583"
										},
										{
											"begin": 28657,
											"end": 28659,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 28725,
											"end": 28743,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "584"
										},
										{
											"begin": 28725,
											"end": 28743,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "527"
										},
										{
											"begin": 28725,
											"end": 28743,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 28725,
											"end": 28743,
											"name": "tag",
											"source": 13,
											"value": "584"
										},
										{
											"begin": 28725,
											"end": 28743,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 28657,
											"end": 28659,
											"name": "tag",
											"source": 13,
											"value": "583"
										},
										{
											"begin": 28657,
											"end": 28659,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 28765,
											"end": 28775,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 28761,
											"end": 28763,
											"name": "PUSH",
											"source": 13,
											"value": "40"
										},
										{
											"begin": 28754,
											"end": 28776,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 28544,
											"end": 28782,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 28544,
											"end": 28782,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 28544,
											"end": 28782,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 28544,
											"end": 28782,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 28788,
											"end": 28888,
											"name": "tag",
											"source": 13,
											"value": "358"
										},
										{
											"begin": 28788,
											"end": 28888,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 28827,
											"end": 28834,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 28856,
											"end": 28882,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "586"
										},
										{
											"begin": 28876,
											"end": 28881,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 28856,
											"end": 28882,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "587"
										},
										{
											"begin": 28856,
											"end": 28882,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 28856,
											"end": 28882,
											"name": "tag",
											"source": 13,
											"value": "586"
										},
										{
											"begin": 28856,
											"end": 28882,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 28845,
											"end": 28882,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 28845,
											"end": 28882,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 28835,
											"end": 28888,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 28835,
											"end": 28888,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 28835,
											"end": 28888,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 28835,
											"end": 28888,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 28894,
											"end": 28988,
											"name": "tag",
											"source": 13,
											"value": "587"
										},
										{
											"begin": 28894,
											"end": 28988,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 28933,
											"end": 28940,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 28962,
											"end": 28982,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "589"
										},
										{
											"begin": 28976,
											"end": 28981,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 28962,
											"end": 28982,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "590"
										},
										{
											"begin": 28962,
											"end": 28982,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 28962,
											"end": 28982,
											"name": "tag",
											"source": 13,
											"value": "589"
										},
										{
											"begin": 28962,
											"end": 28982,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 28951,
											"end": 28982,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 28951,
											"end": 28982,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 28941,
											"end": 28988,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 28941,
											"end": 28988,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 28941,
											"end": 28988,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 28941,
											"end": 28988,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 28994,
											"end": 29174,
											"name": "tag",
											"source": 13,
											"value": "546"
										},
										{
											"begin": 28994,
											"end": 29174,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 29042,
											"end": 29119,
											"name": "PUSH",
											"source": 13,
											"value": "4E487B7100000000000000000000000000000000000000000000000000000000"
										},
										{
											"begin": 29039,
											"end": 29040,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 29032,
											"end": 29120,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 29139,
											"end": 29143,
											"name": "PUSH",
											"source": 13,
											"value": "11"
										},
										{
											"begin": 29136,
											"end": 29137,
											"name": "PUSH",
											"source": 13,
											"value": "4"
										},
										{
											"begin": 29129,
											"end": 29144,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 29163,
											"end": 29167,
											"name": "PUSH",
											"source": 13,
											"value": "24"
										},
										{
											"begin": 29160,
											"end": 29161,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 29153,
											"end": 29168,
											"name": "REVERT",
											"source": 13
										},
										{
											"begin": 29180,
											"end": 29360,
											"name": "tag",
											"source": 13,
											"value": "540"
										},
										{
											"begin": 29180,
											"end": 29360,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 29228,
											"end": 29305,
											"name": "PUSH",
											"source": 13,
											"value": "4E487B7100000000000000000000000000000000000000000000000000000000"
										},
										{
											"begin": 29225,
											"end": 29226,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 29218,
											"end": 29306,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 29325,
											"end": 29329,
											"name": "PUSH",
											"source": 13,
											"value": "12"
										},
										{
											"begin": 29322,
											"end": 29323,
											"name": "PUSH",
											"source": 13,
											"value": "4"
										},
										{
											"begin": 29315,
											"end": 29330,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 29349,
											"end": 29353,
											"name": "PUSH",
											"source": 13,
											"value": "24"
										},
										{
											"begin": 29346,
											"end": 29347,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 29339,
											"end": 29354,
											"name": "REVERT",
											"source": 13
										},
										{
											"begin": 29366,
											"end": 29546,
											"name": "tag",
											"source": 13,
											"value": "527"
										},
										{
											"begin": 29366,
											"end": 29546,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 29414,
											"end": 29491,
											"name": "PUSH",
											"source": 13,
											"value": "4E487B7100000000000000000000000000000000000000000000000000000000"
										},
										{
											"begin": 29411,
											"end": 29412,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 29404,
											"end": 29492,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 29511,
											"end": 29515,
											"name": "PUSH",
											"source": 13,
											"value": "41"
										},
										{
											"begin": 29508,
											"end": 29509,
											"name": "PUSH",
											"source": 13,
											"value": "4"
										},
										{
											"begin": 29501,
											"end": 29516,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 29535,
											"end": 29539,
											"name": "PUSH",
											"source": 13,
											"value": "24"
										},
										{
											"begin": 29532,
											"end": 29533,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 29525,
											"end": 29540,
											"name": "REVERT",
											"source": 13
										},
										{
											"begin": 29552,
											"end": 29654,
											"name": "tag",
											"source": 13,
											"value": "372"
										},
										{
											"begin": 29552,
											"end": 29654,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 29593,
											"end": 29599,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 29644,
											"end": 29646,
											"name": "PUSH",
											"source": 13,
											"value": "1F"
										},
										{
											"begin": 29640,
											"end": 29647,
											"name": "NOT",
											"source": 13
										},
										{
											"begin": 29635,
											"end": 29637,
											"name": "PUSH",
											"source": 13,
											"value": "1F"
										},
										{
											"begin": 29628,
											"end": 29633,
											"name": "DUP4",
											"source": 13
										},
										{
											"begin": 29624,
											"end": 29638,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 29620,
											"end": 29648,
											"name": "AND",
											"source": 13
										},
										{
											"begin": 29610,
											"end": 29648,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 29610,
											"end": 29648,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 29600,
											"end": 29654,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 29600,
											"end": 29654,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 29600,
											"end": 29654,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 29600,
											"end": 29654,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 29660,
											"end": 29754,
											"name": "tag",
											"source": 13,
											"value": "590"
										},
										{
											"begin": 29660,
											"end": 29754,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 29693,
											"end": 29701,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 29741,
											"end": 29746,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 29737,
											"end": 29739,
											"name": "PUSH",
											"source": 13,
											"value": "60"
										},
										{
											"begin": 29733,
											"end": 29747,
											"name": "SHL",
											"source": 13
										},
										{
											"begin": 29712,
											"end": 29747,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 29712,
											"end": 29747,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 29702,
											"end": 29754,
											"name": "SWAP2",
											"source": 13
										},
										{
											"begin": 29702,
											"end": 29754,
											"name": "SWAP1",
											"source": 13
										},
										{
											"begin": 29702,
											"end": 29754,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 29702,
											"end": 29754,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 29760,
											"end": 29981,
											"name": "tag",
											"source": 13,
											"value": "402"
										},
										{
											"begin": 29760,
											"end": 29981,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 29900,
											"end": 29934,
											"name": "PUSH",
											"source": 13,
											"value": "4C69624469616D6F6E643A204D75737420626520636F6E7472616374206F776E"
										},
										{
											"begin": 29896,
											"end": 29897,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 29888,
											"end": 29894,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 29884,
											"end": 29898,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 29877,
											"end": 29935,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 29969,
											"end": 29973,
											"name": "PUSH",
											"source": 13,
											"value": "6572000000000000000000000000000000000000000000000000000000000000"
										},
										{
											"begin": 29964,
											"end": 29966,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 29956,
											"end": 29962,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 29952,
											"end": 29967,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 29945,
											"end": 29974,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 29866,
											"end": 29981,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 29866,
											"end": 29981,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 29987,
											"end": 30139,
											"name": "tag",
											"source": 13,
											"value": "407"
										},
										{
											"begin": 29987,
											"end": 30139,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 30127,
											"end": 30131,
											"name": "PUSH",
											"source": 13,
											"value": "3078000000000000000000000000000000000000000000000000000000000000"
										},
										{
											"begin": 30123,
											"end": 30124,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 30115,
											"end": 30121,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 30111,
											"end": 30125,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 30104,
											"end": 30132,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 30093,
											"end": 30139,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 30093,
											"end": 30139,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 30145,
											"end": 30370,
											"name": "tag",
											"source": 13,
											"value": "412"
										},
										{
											"begin": 30145,
											"end": 30370,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 30285,
											"end": 30319,
											"name": "PUSH",
											"source": 13,
											"value": "416464726573733A20696E73756666696369656E742062616C616E636520666F"
										},
										{
											"begin": 30281,
											"end": 30282,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 30273,
											"end": 30279,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 30269,
											"end": 30283,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 30262,
											"end": 30320,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 30354,
											"end": 30362,
											"name": "PUSH",
											"source": 13,
											"value": "722063616C6C0000000000000000000000000000000000000000000000000000"
										},
										{
											"begin": 30349,
											"end": 30351,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 30341,
											"end": 30347,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 30337,
											"end": 30352,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 30330,
											"end": 30363,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 30251,
											"end": 30370,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 30251,
											"end": 30370,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 30376,
											"end": 30534,
											"name": "tag",
											"source": 13,
											"value": "417"
										},
										{
											"begin": 30376,
											"end": 30534,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 30516,
											"end": 30526,
											"name": "PUSH",
											"source": 13,
											"value": "7374617267617465000000000000000000000000000000000000000000000000"
										},
										{
											"begin": 30512,
											"end": 30513,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 30504,
											"end": 30510,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 30500,
											"end": 30514,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 30493,
											"end": 30527,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 30482,
											"end": 30534,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 30482,
											"end": 30534,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 30540,
											"end": 30719,
											"name": "tag",
											"source": 13,
											"value": "422"
										},
										{
											"begin": 30540,
											"end": 30719,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 30680,
											"end": 30711,
											"name": "PUSH",
											"source": 13,
											"value": "416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000"
										},
										{
											"begin": 30676,
											"end": 30677,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 30668,
											"end": 30674,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 30664,
											"end": 30678,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 30657,
											"end": 30712,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 30646,
											"end": 30719,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 30646,
											"end": 30719,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 30725,
											"end": 30954,
											"name": "tag",
											"source": 13,
											"value": "427"
										},
										{
											"begin": 30725,
											"end": 30954,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 30865,
											"end": 30899,
											"name": "PUSH",
											"source": 13,
											"value": "5361666545524332303A204552433230206F7065726174696F6E20646964206E"
										},
										{
											"begin": 30861,
											"end": 30862,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 30853,
											"end": 30859,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 30849,
											"end": 30863,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 30842,
											"end": 30900,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 30934,
											"end": 30946,
											"name": "PUSH",
											"source": 13,
											"value": "6F74207375636365656400000000000000000000000000000000000000000000"
										},
										{
											"begin": 30929,
											"end": 30931,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 30921,
											"end": 30927,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 30917,
											"end": 30932,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 30910,
											"end": 30947,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 30831,
											"end": 30954,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 30831,
											"end": 30954,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 30960,
											"end": 31201,
											"name": "tag",
											"source": 13,
											"value": "432"
										},
										{
											"begin": 30960,
											"end": 31201,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 31100,
											"end": 31134,
											"name": "PUSH",
											"source": 13,
											"value": "5361666545524332303A20617070726F76652066726F6D206E6F6E2D7A65726F"
										},
										{
											"begin": 31096,
											"end": 31097,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 31088,
											"end": 31094,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 31084,
											"end": 31098,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 31077,
											"end": 31135,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 31169,
											"end": 31193,
											"name": "PUSH",
											"source": 13,
											"value": "20746F206E6F6E2D7A65726F20616C6C6F77616E636500000000000000000000"
										},
										{
											"begin": 31164,
											"end": 31166,
											"name": "PUSH",
											"source": 13,
											"value": "20"
										},
										{
											"begin": 31156,
											"end": 31162,
											"name": "DUP3",
											"source": 13
										},
										{
											"begin": 31152,
											"end": 31167,
											"name": "ADD",
											"source": 13
										},
										{
											"begin": 31145,
											"end": 31194,
											"name": "MSTORE",
											"source": 13
										},
										{
											"begin": 31066,
											"end": 31201,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 31066,
											"end": 31201,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 31207,
											"end": 31329,
											"name": "tag",
											"source": 13,
											"value": "252"
										},
										{
											"begin": 31207,
											"end": 31329,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 31280,
											"end": 31304,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "604"
										},
										{
											"begin": 31298,
											"end": 31303,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 31280,
											"end": 31304,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "353"
										},
										{
											"begin": 31280,
											"end": 31304,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 31280,
											"end": 31304,
											"name": "tag",
											"source": 13,
											"value": "604"
										},
										{
											"begin": 31280,
											"end": 31304,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 31273,
											"end": 31278,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 31270,
											"end": 31305,
											"name": "EQ",
											"source": 13
										},
										{
											"begin": 31260,
											"end": 31262,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "605"
										},
										{
											"begin": 31260,
											"end": 31262,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 31319,
											"end": 31320,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 31316,
											"end": 31317,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 31309,
											"end": 31321,
											"name": "REVERT",
											"source": 13
										},
										{
											"begin": 31260,
											"end": 31262,
											"name": "tag",
											"source": 13,
											"value": "605"
										},
										{
											"begin": 31260,
											"end": 31262,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 31250,
											"end": 31329,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 31250,
											"end": 31329,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 31335,
											"end": 31473,
											"name": "tag",
											"source": 13,
											"value": "256"
										},
										{
											"begin": 31335,
											"end": 31473,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 31416,
											"end": 31448,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "607"
										},
										{
											"begin": 31442,
											"end": 31447,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 31416,
											"end": 31448,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "349"
										},
										{
											"begin": 31416,
											"end": 31448,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 31416,
											"end": 31448,
											"name": "tag",
											"source": 13,
											"value": "607"
										},
										{
											"begin": 31416,
											"end": 31448,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 31409,
											"end": 31414,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 31406,
											"end": 31449,
											"name": "EQ",
											"source": 13
										},
										{
											"begin": 31396,
											"end": 31398,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "608"
										},
										{
											"begin": 31396,
											"end": 31398,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 31463,
											"end": 31464,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 31460,
											"end": 31461,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 31453,
											"end": 31465,
											"name": "REVERT",
											"source": 13
										},
										{
											"begin": 31396,
											"end": 31398,
											"name": "tag",
											"source": 13,
											"value": "608"
										},
										{
											"begin": 31396,
											"end": 31398,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 31386,
											"end": 31473,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 31386,
											"end": 31473,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 31479,
											"end": 31595,
											"name": "tag",
											"source": 13,
											"value": "263"
										},
										{
											"begin": 31479,
											"end": 31595,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 31549,
											"end": 31570,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "610"
										},
										{
											"begin": 31564,
											"end": 31569,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 31549,
											"end": 31570,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "362"
										},
										{
											"begin": 31549,
											"end": 31570,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 31549,
											"end": 31570,
											"name": "tag",
											"source": 13,
											"value": "610"
										},
										{
											"begin": 31549,
											"end": 31570,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 31542,
											"end": 31547,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 31539,
											"end": 31571,
											"name": "EQ",
											"source": 13
										},
										{
											"begin": 31529,
											"end": 31531,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "611"
										},
										{
											"begin": 31529,
											"end": 31531,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 31585,
											"end": 31586,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 31582,
											"end": 31583,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 31575,
											"end": 31587,
											"name": "REVERT",
											"source": 13
										},
										{
											"begin": 31529,
											"end": 31531,
											"name": "tag",
											"source": 13,
											"value": "611"
										},
										{
											"begin": 31529,
											"end": 31531,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 31519,
											"end": 31595,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 31519,
											"end": 31595,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 31601,
											"end": 31721,
											"name": "tag",
											"source": 13,
											"value": "284"
										},
										{
											"begin": 31601,
											"end": 31721,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 31673,
											"end": 31696,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "613"
										},
										{
											"begin": 31690,
											"end": 31695,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 31673,
											"end": 31696,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "442"
										},
										{
											"begin": 31673,
											"end": 31696,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 31673,
											"end": 31696,
											"name": "tag",
											"source": 13,
											"value": "613"
										},
										{
											"begin": 31673,
											"end": 31696,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 31666,
											"end": 31671,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 31663,
											"end": 31697,
											"name": "EQ",
											"source": 13
										},
										{
											"begin": 31653,
											"end": 31655,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "614"
										},
										{
											"begin": 31653,
											"end": 31655,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 31711,
											"end": 31712,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 31708,
											"end": 31709,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 31701,
											"end": 31713,
											"name": "REVERT",
											"source": 13
										},
										{
											"begin": 31653,
											"end": 31655,
											"name": "tag",
											"source": 13,
											"value": "614"
										},
										{
											"begin": 31653,
											"end": 31655,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 31643,
											"end": 31721,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 31643,
											"end": 31721,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										},
										{
											"begin": 31727,
											"end": 31849,
											"name": "tag",
											"source": 13,
											"value": "287"
										},
										{
											"begin": 31727,
											"end": 31849,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 31800,
											"end": 31824,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "616"
										},
										{
											"begin": 31818,
											"end": 31823,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 31800,
											"end": 31824,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "449"
										},
										{
											"begin": 31800,
											"end": 31824,
											"name": "JUMP",
											"source": 13,
											"value": "[in]"
										},
										{
											"begin": 31800,
											"end": 31824,
											"name": "tag",
											"source": 13,
											"value": "616"
										},
										{
											"begin": 31800,
											"end": 31824,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 31793,
											"end": 31798,
											"name": "DUP2",
											"source": 13
										},
										{
											"begin": 31790,
											"end": 31825,
											"name": "EQ",
											"source": 13
										},
										{
											"begin": 31780,
											"end": 31782,
											"name": "PUSH [tag]",
											"source": 13,
											"value": "617"
										},
										{
											"begin": 31780,
											"end": 31782,
											"name": "JUMPI",
											"source": 13
										},
										{
											"begin": 31839,
											"end": 31840,
											"name": "PUSH",
											"source": 13,
											"value": "0"
										},
										{
											"begin": 31836,
											"end": 31837,
											"name": "DUP1",
											"source": 13
										},
										{
											"begin": 31829,
											"end": 31841,
											"name": "REVERT",
											"source": 13
										},
										{
											"begin": 31780,
											"end": 31782,
											"name": "tag",
											"source": 13,
											"value": "617"
										},
										{
											"begin": 31780,
											"end": 31782,
											"name": "JUMPDEST",
											"source": 13
										},
										{
											"begin": 31770,
											"end": 31849,
											"name": "POP",
											"source": 13
										},
										{
											"begin": 31770,
											"end": 31849,
											"name": "JUMP",
											"source": 13,
											"value": "[out]"
										}
									]
								}
							}
						},
						"methodIdentifiers": {
							"sgAddPool(uint16,address,uint256)": "2aad46e3",
							"sgBridgeTokens((uint256,address,address,uint16,uint16,uint16,address,address))": "6acf5e3f",
							"sgCalculateFees(uint16,address,address)": "42d910c6",
							"sgCheckPoolId(uint16,address,uint256)": "90f12364",
							"sgInitialize(address,uint16)": "498ee469",
							"sgMinAmountOut(uint256)": "618c3f29",
							"sgReceive(uint16,bytes,uint256,address,uint256,bytes)": "ab8236f3",
							"sgUpdateRouter(address)": "4be85c35",
							"sgUpdateSlippageTolerance(uint256)": "217aabb7",
							"sgWithdraw(address,address,uint256)": "c722a336"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidConfig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidDestinationPoolId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSourcePoolId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoMsgValueForCrossChainMessage\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SenderNotStargateRouter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StargateRouterAddressZero\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"SGAddedPool\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"stargate\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"chainId\",\"type\":\"uint16\"}],\"name\":\"SGInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SGReceivedOnDestination\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"bridgeUsed\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"fromToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"toToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"chainIdTo\",\"type\":\"uint16\"}],\"name\":\"SGTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"SGUpdatedRouter\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newSlippage\",\"type\":\"uint256\"}],\"name\":\"SGUpdatedSlippageTolerance\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"}],\"name\":\"sgAddPool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"qty\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"fromToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"toToken\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"srcPoolId\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"dstPoolId\",\"type\":\"uint16\"},{\"internalType\":\"address payable\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"destStargateComposed\",\"type\":\"address\"}],\"internalType\":\"struct StargateFacet.StargateData\",\"name\":\"_sgData\",\"type\":\"tuple\"}],\"name\":\"sgBridgeTokens\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_destChain\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"}],\"name\":\"sgCalculateFees\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"}],\"name\":\"sgCheckPoolId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_stargateRouter\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"}],\"name\":\"sgInitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"sgMinAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_chainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountLD\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"sgReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newAddress\",\"type\":\"address\"}],\"name\":\"sgUpdateRouter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newSlippage\",\"type\":\"uint256\"}],\"name\":\"sgUpdateSlippageTolerance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"sgWithdraw\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"Luke Wickens <luke@pillarproject.io>\",\"kind\":\"dev\",\"methods\":{\"sgBridgeTokens((uint256,address,address,uint16,uint16,uint16,address,address))\":{\"params\":{\"_sgData\":\"- struct containing information required to execute bridge\"}},\"sgInitialize(address,uint16)\":{\"params\":{\"_chainId\":\"- current chain id\",\"_stargateRouter\":\"- address of the Stargate router contract\"}},\"sgReceive(uint16,bytes,uint256,address,uint256,bytes)\":{\"params\":{\"_chainId\":\"The remote chainId sending the tokens\",\"_nonce\":\"The message ordering nonce\",\"_payload\":\"The bytes containing the toAddress\",\"_srcAddress\":\"The remote Bridge address\",\"_token\":\"The token contract on the local chain\",\"amountLD\":\"The qty of local _token contract tokens\"}}},\"title\":\"StargateFacet\",\"version\":1},\"userdoc\":{\"errors\":{\"ReentrancyError()\":[{\"notice\":\"Errors ///\"}]},\"kind\":\"user\",\"methods\":{\"sgInitialize(address,uint16)\":{\"notice\":\"initializes state variables for the Stargate facet\"}},\"notice\":\"Stargate/LayerZero intergration for bridging tokens\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"bridges/facets/StargateFacet.sol\":\"StargateFacet\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"bridges/errors/GenericErrors.sol\":{\"keccak256\":\"0x428005532c28e5c7ab8caf0683f3df926d36d9e4c4d2d84ada50961bbbafc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6c8c43e7ff4ed53a714221d42c73aebc8b9bb617f83c6fa39cb0f84ee85ed48\",\"dweb:/ipfs/QmRHpwL8iZVmykWEzbqhF6Are4duCKy4fp66JQgtrPnoUT\"]},\"bridges/errors/StargateErrors.sol\":{\"keccak256\":\"0xc5c2c151907a2b71761be3cb2c1e4dcb65e29f6ef67ed8056a7f3845a770dde5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a5964bdd4c309a86bbce8050e3cb944a3bbfa38b326d43f441652d55557f5f7\",\"dweb:/ipfs/QmRXp3hJAFMMdJEw3nX9yNNwdoF35X7nFP1MRB3NCqiVA8\"]},\"bridges/facets/StargateFacet.sol\":{\"keccak256\":\"0x2956966778568d6e0732b0e6f9acd169a83a4147f7da285627f5d30f4fb21be6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0426938935fde2df21160123cabc8f1999c5b1978d1f6cda5260939989379b2b\",\"dweb:/ipfs/QmUPyWMHcpiV6J1ch7vWid6q9auS9yQroMhYcbPmBWP6Gf\"]},\"bridges/helpers/ReentrancyGuard.sol\":{\"keccak256\":\"0x63437a01c734b65679c405ae011ea5290a5a1c220c8b9854319b2595d3ac02d2\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4d2026bf9202befef764f0512b9cb1071e5b107b1b78de5987324fb783bfe7ce\",\"dweb:/ipfs/QmceFBuJ3hM7KwA195vxXkTcZVvZd27NvFWnmCyLzo5Rwg\"]},\"bridges/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0x895069af98e2df3257996711d1f870eff1d97a445c952d5f89621ea508dafbd6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://97f085c1d787a64ec56dcb4c6d03dc84bb457006bf2e2761c69f3b2873fc1d71\",\"dweb:/ipfs/Qmd8JyuZNP6icA9HqzpRSzQhFHP6CQvHbGEp7AhfGLEmP4\"]},\"bridges/interfaces/IStargateReceiver.sol\":{\"keccak256\":\"0x667379c5980740888b48e9db4d340402c049c131c182c29b50820519f18d74cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc4e7697aa186e644a2ca2ff9d605849c9a61d212a0a07746f8d5cf06a925c90\",\"dweb:/ipfs/QmVLJX9wEKJk3RxWHA2MTU9AbjJuFhFhFv4hAfif8WqVfg\"]},\"bridges/interfaces/IStargateRouter.sol\":{\"keccak256\":\"0x9d11f889b2915d08282cb4787091858bfb72f811e4fb92f43d1fef8ae64394d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bcf1285a378e2d6ad43db50a62d004532e0d4a43917fdf943b38cb2f133e328e\",\"dweb:/ipfs/QmeS9zA4GzdUrNZiEdrpcUENuVGHVYPJ4iUJ2aRcYxiYub\"]},\"bridges/libs/LibDiamond.sol\":{\"keccak256\":\"0xf27658fee344f2b02d6881ee6c3b853868ecceafe72867256b9cb94d75888c52\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://409c3f67362abba3c74f31ef99f2f3692b5a4ca0c1fc025c62da1b8251d90df5\",\"dweb:/ipfs/QmPryPC22UfHNj6xNp3B1CcB4nFan32iDc4jsM16EMiTuG\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x72b6a1d297cd3b033d7c2e4a7e7864934bb767db6453623f1c3082c6534547f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8cb8681076e765c214e0d51cac989325f6b98e315eaae06ee0cbd5a9f084763\",\"dweb:/ipfs/QmNWGHi4zmjxQTYN3NMGnJd49jBT5dE4bxTdWEaDuJrC6N\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"errors": {
							"ReentrancyError()": [
								{
									"notice": "Errors ///"
								}
							]
						},
						"kind": "user",
						"methods": {
							"sgInitialize(address,uint16)": {
								"notice": "initializes state variables for the Stargate facet"
							}
						},
						"notice": "Stargate/LayerZero intergration for bridging tokens",
						"version": 1
					}
				}
			},
			"bridges/helpers/ReentrancyGuard.sol": {
				"ReentrancyGuard": {
					"abi": [
						{
							"inputs": [],
							"name": "ReentrancyError",
							"type": "error"
						}
					],
					"devdoc": {
						"author": "LI.FI (https://li.fi)",
						"kind": "dev",
						"methods": {},
						"title": "Reentrancy Guard",
						"version": 1
					},
					"evm": {
						"assembly": "",
						"bytecode": {
							"generatedSources": [],
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"deployedBytecode": {
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"gasEstimates": null,
						"legacyAssembly": null,
						"methodIdentifiers": {}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ReentrancyError\",\"type\":\"error\"}],\"devdoc\":{\"author\":\"LI.FI (https://li.fi)\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Reentrancy Guard\",\"version\":1},\"userdoc\":{\"errors\":{\"ReentrancyError()\":[{\"notice\":\"Errors ///\"}]},\"kind\":\"user\",\"methods\":{},\"notice\":\"Abstract contract to provide protection against reentrancy\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"bridges/helpers/ReentrancyGuard.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"bridges/helpers/ReentrancyGuard.sol\":{\"keccak256\":\"0x63437a01c734b65679c405ae011ea5290a5a1c220c8b9854319b2595d3ac02d2\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4d2026bf9202befef764f0512b9cb1071e5b107b1b78de5987324fb783bfe7ce\",\"dweb:/ipfs/QmceFBuJ3hM7KwA195vxXkTcZVvZd27NvFWnmCyLzo5Rwg\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"errors": {
							"ReentrancyError()": [
								{
									"notice": "Errors ///"
								}
							]
						},
						"kind": "user",
						"methods": {},
						"notice": "Abstract contract to provide protection against reentrancy",
						"version": 1
					}
				}
			},
			"bridges/interfaces/IDiamondCut.sol": {
				"IDiamondCut": {
					"abi": [
						{
							"anonymous": false,
							"inputs": [
								{
									"components": [
										{
											"internalType": "address",
											"name": "facetAddress",
											"type": "address"
										},
										{
											"internalType": "enum IDiamondCut.FacetCutAction",
											"name": "action",
											"type": "uint8"
										},
										{
											"internalType": "bytes4[]",
											"name": "functionSelectors",
											"type": "bytes4[]"
										}
									],
									"indexed": false,
									"internalType": "struct IDiamondCut.FacetCut[]",
									"name": "_diamondCut",
									"type": "tuple[]"
								},
								{
									"indexed": false,
									"internalType": "address",
									"name": "_init",
									"type": "address"
								},
								{
									"indexed": false,
									"internalType": "bytes",
									"name": "_calldata",
									"type": "bytes"
								}
							],
							"name": "DiamondCut",
							"type": "event"
						},
						{
							"inputs": [
								{
									"components": [
										{
											"internalType": "address",
											"name": "facetAddress",
											"type": "address"
										},
										{
											"internalType": "enum IDiamondCut.FacetCutAction",
											"name": "action",
											"type": "uint8"
										},
										{
											"internalType": "bytes4[]",
											"name": "functionSelectors",
											"type": "bytes4[]"
										}
									],
									"internalType": "struct IDiamondCut.FacetCut[]",
									"name": "_diamondCut",
									"type": "tuple[]"
								},
								{
									"internalType": "address",
									"name": "_init",
									"type": "address"
								},
								{
									"internalType": "bytes",
									"name": "_calldata",
									"type": "bytes"
								}
							],
							"name": "diamondCut",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						}
					],
					"devdoc": {
						"kind": "dev",
						"methods": {
							"diamondCut((address,uint8,bytes4[])[],address,bytes)": {
								"params": {
									"_calldata": "A function call, including function selector and arguments                  _calldata is executed with delegatecall on _init",
									"_diamondCut": "Contains the facet addresses and function selectors",
									"_init": "The address of the contract or facet to execute _calldata"
								}
							}
						},
						"version": 1
					},
					"evm": {
						"assembly": "",
						"bytecode": {
							"generatedSources": [],
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"deployedBytecode": {
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"gasEstimates": null,
						"legacyAssembly": null,
						"methodIdentifiers": {
							"diamondCut((address,uint8,bytes4[])[],address,bytes)": "1f931c1c"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamondCut.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"indexed\":false,\"internalType\":\"struct IDiamondCut.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_init\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"DiamondCut\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamondCut.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct IDiamondCut.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"_init\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"diamondCut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"diamondCut((address,uint8,bytes4[])[],address,bytes)\":{\"params\":{\"_calldata\":\"A function call, including function selector and arguments                  _calldata is executed with delegatecall on _init\",\"_diamondCut\":\"Contains the facet addresses and function selectors\",\"_init\":\"The address of the contract or facet to execute _calldata\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"diamondCut((address,uint8,bytes4[])[],address,bytes)\":{\"notice\":\"Add/replace/remove any number of functions and optionally execute         a function with delegatecall\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"bridges/interfaces/IDiamondCut.sol\":\"IDiamondCut\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"bridges/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0x895069af98e2df3257996711d1f870eff1d97a445c952d5f89621ea508dafbd6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://97f085c1d787a64ec56dcb4c6d03dc84bb457006bf2e2761c69f3b2873fc1d71\",\"dweb:/ipfs/Qmd8JyuZNP6icA9HqzpRSzQhFHP6CQvHbGEp7AhfGLEmP4\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {
							"diamondCut((address,uint8,bytes4[])[],address,bytes)": {
								"notice": "Add/replace/remove any number of functions and optionally execute         a function with delegatecall"
							}
						},
						"version": 1
					}
				}
			},
			"bridges/interfaces/IStargateReceiver.sol": {
				"IStargateReceiver": {
					"abi": [
						{
							"inputs": [
								{
									"internalType": "uint16",
									"name": "_srcChainId",
									"type": "uint16"
								},
								{
									"internalType": "bytes",
									"name": "_srcAddress",
									"type": "bytes"
								},
								{
									"internalType": "uint256",
									"name": "_nonce",
									"type": "uint256"
								},
								{
									"internalType": "address",
									"name": "_token",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "amountLD",
									"type": "uint256"
								},
								{
									"internalType": "bytes",
									"name": "payload",
									"type": "bytes"
								}
							],
							"name": "sgReceive",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						}
					],
					"devdoc": {
						"kind": "dev",
						"methods": {},
						"version": 1
					},
					"evm": {
						"assembly": "",
						"bytecode": {
							"generatedSources": [],
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"deployedBytecode": {
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"gasEstimates": null,
						"legacyAssembly": null,
						"methodIdentifiers": {
							"sgReceive(uint16,bytes,uint256,address,uint256,bytes)": "ab8236f3"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcChainId\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_srcAddress\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountLD\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"sgReceive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"bridges/interfaces/IStargateReceiver.sol\":\"IStargateReceiver\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"bridges/interfaces/IStargateReceiver.sol\":{\"keccak256\":\"0x667379c5980740888b48e9db4d340402c049c131c182c29b50820519f18d74cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc4e7697aa186e644a2ca2ff9d605849c9a61d212a0a07746f8d5cf06a925c90\",\"dweb:/ipfs/QmVLJX9wEKJk3RxWHA2MTU9AbjJuFhFhFv4hAfif8WqVfg\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"bridges/interfaces/IStargateRouter.sol": {
				"IStargateRouter": {
					"abi": [
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "_poolId",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "_amountLD",
									"type": "uint256"
								},
								{
									"internalType": "address",
									"name": "_to",
									"type": "address"
								}
							],
							"name": "addLiquidity",
							"outputs": [],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint16",
									"name": "_srcPoolId",
									"type": "uint16"
								},
								{
									"internalType": "uint256",
									"name": "_amountLP",
									"type": "uint256"
								},
								{
									"internalType": "address",
									"name": "_to",
									"type": "address"
								}
							],
							"name": "instantRedeemLocal",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "nonpayable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint16",
									"name": "_dstChainId",
									"type": "uint16"
								},
								{
									"internalType": "uint8",
									"name": "_functionType",
									"type": "uint8"
								},
								{
									"internalType": "bytes",
									"name": "_toAddress",
									"type": "bytes"
								},
								{
									"internalType": "bytes",
									"name": "_transferAndCallPayload",
									"type": "bytes"
								},
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "dstGasForCall",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "dstNativeAmount",
											"type": "uint256"
										},
										{
											"internalType": "bytes",
											"name": "dstNativeAddr",
											"type": "bytes"
										}
									],
									"internalType": "struct IStargateRouter.lzTxObj",
									"name": "_lzTxParams",
									"type": "tuple"
								}
							],
							"name": "quoteLayerZeroFee",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint16",
									"name": "_dstChainId",
									"type": "uint16"
								},
								{
									"internalType": "uint256",
									"name": "_srcPoolId",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "_dstPoolId",
									"type": "uint256"
								},
								{
									"internalType": "address payable",
									"name": "_refundAddress",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "_amountLP",
									"type": "uint256"
								},
								{
									"internalType": "bytes",
									"name": "_to",
									"type": "bytes"
								},
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "dstGasForCall",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "dstNativeAmount",
											"type": "uint256"
										},
										{
											"internalType": "bytes",
											"name": "dstNativeAddr",
											"type": "bytes"
										}
									],
									"internalType": "struct IStargateRouter.lzTxObj",
									"name": "_lzTxParams",
									"type": "tuple"
								}
							],
							"name": "redeemLocal",
							"outputs": [],
							"stateMutability": "payable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint16",
									"name": "_dstChainId",
									"type": "uint16"
								},
								{
									"internalType": "uint256",
									"name": "_srcPoolId",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "_dstPoolId",
									"type": "uint256"
								},
								{
									"internalType": "address payable",
									"name": "_refundAddress",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "_amountLP",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "_minAmountLD",
									"type": "uint256"
								},
								{
									"internalType": "bytes",
									"name": "_to",
									"type": "bytes"
								},
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "dstGasForCall",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "dstNativeAmount",
											"type": "uint256"
										},
										{
											"internalType": "bytes",
											"name": "dstNativeAddr",
											"type": "bytes"
										}
									],
									"internalType": "struct IStargateRouter.lzTxObj",
									"name": "_lzTxParams",
									"type": "tuple"
								}
							],
							"name": "redeemRemote",
							"outputs": [],
							"stateMutability": "payable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint16",
									"name": "_dstChainId",
									"type": "uint16"
								},
								{
									"internalType": "uint256",
									"name": "_srcPoolId",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "_dstPoolId",
									"type": "uint256"
								},
								{
									"internalType": "address payable",
									"name": "_refundAddress",
									"type": "address"
								}
							],
							"name": "sendCredits",
							"outputs": [],
							"stateMutability": "payable",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "uint16",
									"name": "_dstChainId",
									"type": "uint16"
								},
								{
									"internalType": "uint256",
									"name": "_srcPoolId",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "_dstPoolId",
									"type": "uint256"
								},
								{
									"internalType": "address payable",
									"name": "_refundAddress",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "_amountLD",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "_minAmountLD",
									"type": "uint256"
								},
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "dstGasForCall",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "dstNativeAmount",
											"type": "uint256"
										},
										{
											"internalType": "bytes",
											"name": "dstNativeAddr",
											"type": "bytes"
										}
									],
									"internalType": "struct IStargateRouter.lzTxObj",
									"name": "_lzTxParams",
									"type": "tuple"
								},
								{
									"internalType": "bytes",
									"name": "_to",
									"type": "bytes"
								},
								{
									"internalType": "bytes",
									"name": "_payload",
									"type": "bytes"
								}
							],
							"name": "swap",
							"outputs": [],
							"stateMutability": "payable",
							"type": "function"
						}
					],
					"devdoc": {
						"kind": "dev",
						"methods": {},
						"version": 1
					},
					"evm": {
						"assembly": "",
						"bytecode": {
							"generatedSources": [],
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"deployedBytecode": {
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "",
							"opcodes": "",
							"sourceMap": ""
						},
						"gasEstimates": null,
						"legacyAssembly": null,
						"methodIdentifiers": {
							"addLiquidity(uint256,uint256,address)": "87b21efc",
							"instantRedeemLocal(uint16,uint256,address)": "c4de93a5",
							"quoteLayerZeroFee(uint16,uint8,bytes,bytes,(uint256,uint256,bytes))": "0a512369",
							"redeemLocal(uint16,uint256,uint256,address,uint256,bytes,(uint256,uint256,bytes))": "8f2e1d18",
							"redeemRemote(uint16,uint256,uint256,address,uint256,uint256,bytes,(uint256,uint256,bytes))": "84d0dba3",
							"sendCredits(uint16,uint256,uint256,address)": "9ba3aa74",
							"swap(uint16,uint256,uint256,address,uint256,uint256,(uint256,uint256,bytes),bytes,bytes)": "9fbf10fc"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amountLD\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"addLiquidity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_srcPoolId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_amountLP\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"instantRedeemLocal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"_functionType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"_toAddress\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_transferAndCallPayload\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"dstGasForCall\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dstNativeAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"dstNativeAddr\",\"type\":\"bytes\"}],\"internalType\":\"struct IStargateRouter.lzTxObj\",\"name\":\"_lzTxParams\",\"type\":\"tuple\"}],\"name\":\"quoteLayerZeroFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_srcPoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_dstPoolId\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"_refundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amountLP\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_to\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"dstGasForCall\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dstNativeAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"dstNativeAddr\",\"type\":\"bytes\"}],\"internalType\":\"struct IStargateRouter.lzTxObj\",\"name\":\"_lzTxParams\",\"type\":\"tuple\"}],\"name\":\"redeemLocal\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_srcPoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_dstPoolId\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"_refundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amountLP\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_minAmountLD\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_to\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"dstGasForCall\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dstNativeAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"dstNativeAddr\",\"type\":\"bytes\"}],\"internalType\":\"struct IStargateRouter.lzTxObj\",\"name\":\"_lzTxParams\",\"type\":\"tuple\"}],\"name\":\"redeemRemote\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_srcPoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_dstPoolId\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"_refundAddress\",\"type\":\"address\"}],\"name\":\"sendCredits\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_dstChainId\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"_srcPoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_dstPoolId\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"_refundAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amountLD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_minAmountLD\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"dstGasForCall\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dstNativeAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"dstNativeAddr\",\"type\":\"bytes\"}],\"internalType\":\"struct IStargateRouter.lzTxObj\",\"name\":\"_lzTxParams\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_to\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"bridges/interfaces/IStargateRouter.sol\":\"IStargateRouter\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"bridges/interfaces/IStargateRouter.sol\":{\"keccak256\":\"0x9d11f889b2915d08282cb4787091858bfb72f811e4fb92f43d1fef8ae64394d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bcf1285a378e2d6ad43db50a62d004532e0d4a43917fdf943b38cb2f133e328e\",\"dweb:/ipfs/QmeS9zA4GzdUrNZiEdrpcUENuVGHVYPJ4iUJ2aRcYxiYub\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"bridges/libs/LibDiamond.sol": {
				"LibDiamond": {
					"abi": [
						{
							"anonymous": false,
							"inputs": [
								{
									"components": [
										{
											"internalType": "address",
											"name": "facetAddress",
											"type": "address"
										},
										{
											"internalType": "enum IDiamondCut.FacetCutAction",
											"name": "action",
											"type": "uint8"
										},
										{
											"internalType": "bytes4[]",
											"name": "functionSelectors",
											"type": "bytes4[]"
										}
									],
									"indexed": false,
									"internalType": "struct IDiamondCut.FacetCut[]",
									"name": "_diamondCut",
									"type": "tuple[]"
								},
								{
									"indexed": false,
									"internalType": "address",
									"name": "_init",
									"type": "address"
								},
								{
									"indexed": false,
									"internalType": "bytes",
									"name": "_calldata",
									"type": "bytes"
								}
							],
							"name": "DiamondCut",
							"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"
						}
					],
					"devdoc": {
						"kind": "dev",
						"methods": {},
						"version": 1
					},
					"evm": {
						"assembly": "    /* \"bridges/libs/LibDiamond.sol\":127:9786  library LibDiamond {... */\n  dataSize(sub_0)\n  dataOffset(sub_0)\n  0x0b\n  dup3\n  dup3\n  dup3\n  codecopy\n  dup1\n  mload\n  0x00\n  byte\n  0x73\n  eq\n  tag_1\n  jumpi\n  mstore(0x00, 0x4e487b7100000000000000000000000000000000000000000000000000000000)\n  mstore(0x04, 0x00)\n  revert(0x00, 0x24)\ntag_1:\n  mstore(0x00, address)\n  0x73\n  dup2\n  mstore8\n  dup3\n  dup2\n  return\nstop\n\nsub_0: assembly {\n        /* \"bridges/libs/LibDiamond.sol\":127:9786  library LibDiamond {... */\n      eq(address, deployTimeAddress())\n      mstore(0x40, 0x80)\n      0x00\n      dup1\n      revert\n\n    auxdata: 0xa264697066735822122092401c6d9540073d7c8a0d57269a34968dc4bea8ad7633edeea8cc6fb49bd25764736f6c63430008040033\n}\n",
						"bytecode": {
							"generatedSources": [],
							"linkReferences": {},
							"object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122092401c6d9540073d7c8a0d57269a34968dc4bea8ad7633edeea8cc6fb49bd25764736f6c63430008040033",
							"opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 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 SWAP3 BLOCKHASH SHR PUSH14 0x9540073D7C8A0D57269A34968DC4 0xBE 0xA8 0xAD PUSH23 0x33EDEEA8CC6FB49BD25764736F6C634300080400330000 ",
							"sourceMap": "127:9659:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
						},
						"deployedBytecode": {
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122092401c6d9540073d7c8a0d57269a34968dc4bea8ad7633edeea8cc6fb49bd25764736f6c63430008040033",
							"opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 BLOCKHASH SHR PUSH14 0x9540073D7C8A0D57269A34968DC4 0xBE 0xA8 0xAD PUSH23 0x33EDEEA8CC6FB49BD25764736F6C634300080400330000 ",
							"sourceMap": "127:9659:11:-:0;;;;;;;;"
						},
						"gasEstimates": {
							"creation": {
								"codeDepositCost": "17200",
								"executionCost": "97",
								"totalCost": "17297"
							},
							"internal": {
								"addFacet(struct LibDiamond.DiamondStorage storage pointer,address)": "infinite",
								"addFunction(struct LibDiamond.DiamondStorage storage pointer,bytes4,uint96,address)": "infinite",
								"addFunctions(address,bytes4[] memory)": "infinite",
								"contractOwner()": "infinite",
								"diamondCut(struct IDiamondCut.FacetCut memory[] memory,address,bytes memory)": "infinite",
								"diamondStorage()": "infinite",
								"enforceHasContractCode(address,string memory)": "infinite",
								"enforceIsContractOwner()": "infinite",
								"initializeDiamondCut(address,bytes memory)": "infinite",
								"removeFunction(struct LibDiamond.DiamondStorage storage pointer,address,bytes4)": "infinite",
								"removeFunctions(address,bytes4[] memory)": "infinite",
								"replaceFunctions(address,bytes4[] memory)": "infinite",
								"setContractOwner(address)": "infinite"
							}
						},
						"legacyAssembly": {
							".code": [
								{
									"begin": 127,
									"end": 9786,
									"name": "PUSH #[$]",
									"source": 11,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "PUSH [$]",
									"source": 11,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "PUSH",
									"source": 11,
									"value": "B"
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "DUP3",
									"source": 11
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "DUP3",
									"source": 11
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "DUP3",
									"source": 11
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "CODECOPY",
									"source": 11
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "DUP1",
									"source": 11
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "MLOAD",
									"source": 11
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "PUSH",
									"source": 11,
									"value": "0"
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "BYTE",
									"source": 11
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "PUSH",
									"source": 11,
									"value": "73"
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "EQ",
									"source": 11
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "PUSH [tag]",
									"source": 11,
									"value": "1"
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "JUMPI",
									"source": 11
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "PUSH",
									"source": 11,
									"value": "4E487B7100000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "PUSH",
									"source": 11,
									"value": "0"
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "MSTORE",
									"source": 11
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "PUSH",
									"source": 11,
									"value": "0"
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "PUSH",
									"source": 11,
									"value": "4"
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "MSTORE",
									"source": 11
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "PUSH",
									"source": 11,
									"value": "24"
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "PUSH",
									"source": 11,
									"value": "0"
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "REVERT",
									"source": 11
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "tag",
									"source": 11,
									"value": "1"
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "JUMPDEST",
									"source": 11
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "ADDRESS",
									"source": 11
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "PUSH",
									"source": 11,
									"value": "0"
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "MSTORE",
									"source": 11
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "PUSH",
									"source": 11,
									"value": "73"
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "DUP2",
									"source": 11
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "MSTORE8",
									"source": 11
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "DUP3",
									"source": 11
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "DUP2",
									"source": 11
								},
								{
									"begin": 127,
									"end": 9786,
									"name": "RETURN",
									"source": 11
								}
							],
							".data": {
								"0": {
									".auxdata": "a264697066735822122092401c6d9540073d7c8a0d57269a34968dc4bea8ad7633edeea8cc6fb49bd25764736f6c63430008040033",
									".code": [
										{
											"begin": 127,
											"end": 9786,
											"name": "PUSHDEPLOYADDRESS",
											"source": 11
										},
										{
											"begin": 127,
											"end": 9786,
											"name": "ADDRESS",
											"source": 11
										},
										{
											"begin": 127,
											"end": 9786,
											"name": "EQ",
											"source": 11
										},
										{
											"begin": 127,
											"end": 9786,
											"name": "PUSH",
											"source": 11,
											"value": "80"
										},
										{
											"begin": 127,
											"end": 9786,
											"name": "PUSH",
											"source": 11,
											"value": "40"
										},
										{
											"begin": 127,
											"end": 9786,
											"name": "MSTORE",
											"source": 11
										},
										{
											"begin": 127,
											"end": 9786,
											"name": "PUSH",
											"source": 11,
											"value": "0"
										},
										{
											"begin": 127,
											"end": 9786,
											"name": "DUP1",
											"source": 11
										},
										{
											"begin": 127,
											"end": 9786,
											"name": "REVERT",
											"source": 11
										}
									]
								}
							}
						},
						"methodIdentifiers": {}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"facetAddress\",\"type\":\"address\"},{\"internalType\":\"enum IDiamondCut.FacetCutAction\",\"name\":\"action\",\"type\":\"uint8\"},{\"internalType\":\"bytes4[]\",\"name\":\"functionSelectors\",\"type\":\"bytes4[]\"}],\"indexed\":false,\"internalType\":\"struct IDiamondCut.FacetCut[]\",\"name\":\"_diamondCut\",\"type\":\"tuple[]\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_init\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_calldata\",\"type\":\"bytes\"}],\"name\":\"DiamondCut\",\"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\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"bridges/libs/LibDiamond.sol\":\"LibDiamond\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"bridges/interfaces/IDiamondCut.sol\":{\"keccak256\":\"0x895069af98e2df3257996711d1f870eff1d97a445c952d5f89621ea508dafbd6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://97f085c1d787a64ec56dcb4c6d03dc84bb457006bf2e2761c69f3b2873fc1d71\",\"dweb:/ipfs/Qmd8JyuZNP6icA9HqzpRSzQhFHP6CQvHbGEp7AhfGLEmP4\"]},\"bridges/libs/LibDiamond.sol\":{\"keccak256\":\"0xf27658fee344f2b02d6881ee6c3b853868ecceafe72867256b9cb94d75888c52\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://409c3f67362abba3c74f31ef99f2f3692b5a4ca0c1fc025c62da1b8251d90df5\",\"dweb:/ipfs/QmPryPC22UfHNj6xNp3B1CcB4nFan32iDc4jsM16EMiTuG\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			},
			"hardhat/console.sol": {
				"console": {
					"abi": [],
					"devdoc": {
						"kind": "dev",
						"methods": {},
						"version": 1
					},
					"evm": {
						"assembly": "    /* \"hardhat/console.sol\":67:62047  library console {... */\n  dataSize(sub_0)\n  dataOffset(sub_0)\n  0x0b\n  dup3\n  dup3\n  dup3\n  codecopy\n  dup1\n  mload\n  0x00\n  byte\n  0x73\n  eq\n  tag_1\n  jumpi\n  mstore(0x00, 0x4e487b7100000000000000000000000000000000000000000000000000000000)\n  mstore(0x04, 0x00)\n  revert(0x00, 0x24)\ntag_1:\n  mstore(0x00, address)\n  0x73\n  dup2\n  mstore8\n  dup3\n  dup2\n  return\nstop\n\nsub_0: assembly {\n        /* \"hardhat/console.sol\":67:62047  library console {... */\n      eq(address, deployTimeAddress())\n      mstore(0x40, 0x80)\n      0x00\n      dup1\n      revert\n\n    auxdata: 0xa26469706673582212201066baf0131e6eab0b5e9cc6cb6d59b6b1ce6f56164f850f45f0e1316d420ed964736f6c63430008040033\n}\n",
						"bytecode": {
							"generatedSources": [],
							"linkReferences": {},
							"object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201066baf0131e6eab0b5e9cc6cb6d59b6b1ce6f56164f850f45f0e1316d420ed964736f6c63430008040033",
							"opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 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 LT PUSH7 0xBAF0131E6EAB0B 0x5E SWAP13 0xC6 0xCB PUSH14 0x59B6B1CE6F56164F850F45F0E131 PUSH14 0x420ED964736F6C63430008040033 ",
							"sourceMap": "67:61980:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
						},
						"deployedBytecode": {
							"generatedSources": [],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201066baf0131e6eab0b5e9cc6cb6d59b6b1ce6f56164f850f45f0e1316d420ed964736f6c63430008040033",
							"opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LT PUSH7 0xBAF0131E6EAB0B 0x5E SWAP13 0xC6 0xCB PUSH14 0x59B6B1CE6F56164F850F45F0E131 PUSH14 0x420ED964736F6C63430008040033 ",
							"sourceMap": "67:61980:12:-:0;;;;;;;;"
						},
						"gasEstimates": {
							"creation": {
								"codeDepositCost": "17200",
								"executionCost": "97",
								"totalCost": "17297"
							},
							"internal": {
								"_sendLogPayload(bytes memory)": "infinite",
								"log()": "infinite",
								"log(address)": "infinite",
								"log(address,address)": "infinite",
								"log(address,address,address)": "infinite",
								"log(address,address,address,address)": "infinite",
								"log(address,address,address,bool)": "infinite",
								"log(address,address,address,string memory)": "infinite",
								"log(address,address,address,uint256)": "infinite",
								"log(address,address,bool)": "infinite",
								"log(address,address,bool,address)": "infinite",
								"log(address,address,bool,bool)": "infinite",
								"log(address,address,bool,string memory)": "infinite",
								"log(address,address,bool,uint256)": "infinite",
								"log(address,address,string memory)": "infinite",
								"log(address,address,string memory,address)": "infinite",
								"log(address,address,string memory,bool)": "infinite",
								"log(address,address,string memory,string memory)": "infinite",
								"log(address,address,string memory,uint256)": "infinite",
								"log(address,address,uint256)": "infinite",
								"log(address,address,uint256,address)": "infinite",
								"log(address,address,uint256,bool)": "infinite",
								"log(address,address,uint256,string memory)": "infinite",
								"log(address,address,uint256,uint256)": "infinite",
								"log(address,bool)": "infinite",
								"log(address,bool,address)": "infinite",
								"log(address,bool,address,address)": "infinite",
								"log(address,bool,address,bool)": "infinite",
								"log(address,bool,address,string memory)": "infinite",
								"log(address,bool,address,uint256)": "infinite",
								"log(address,bool,bool)": "infinite",
								"log(address,bool,bool,address)": "infinite",
								"log(address,bool,bool,bool)": "infinite",
								"log(address,bool,bool,string memory)": "infinite",
								"log(address,bool,bool,uint256)": "infinite",
								"log(address,bool,string memory)": "infinite",
								"log(address,bool,string memory,address)": "infinite",
								"log(address,bool,string memory,bool)": "infinite",
								"log(address,bool,string memory,string memory)": "infinite",
								"log(address,bool,string memory,uint256)": "infinite",
								"log(address,bool,uint256)": "infinite",
								"log(address,bool,uint256,address)": "infinite",
								"log(address,bool,uint256,bool)": "infinite",
								"log(address,bool,uint256,string memory)": "infinite",
								"log(address,bool,uint256,uint256)": "infinite",
								"log(address,string memory)": "infinite",
								"log(address,string memory,address)": "infinite",
								"log(address,string memory,address,address)": "infinite",
								"log(address,string memory,address,bool)": "infinite",
								"log(address,string memory,address,string memory)": "infinite",
								"log(address,string memory,address,uint256)": "infinite",
								"log(address,string memory,bool)": "infinite",
								"log(address,string memory,bool,address)": "infinite",
								"log(address,string memory,bool,bool)": "infinite",
								"log(address,string memory,bool,string memory)": "infinite",
								"log(address,string memory,bool,uint256)": "infinite",
								"log(address,string memory,string memory)": "infinite",
								"log(address,string memory,string memory,address)": "infinite",
								"log(address,string memory,string memory,bool)": "infinite",
								"log(address,string memory,string memory,string memory)": "infinite",
								"log(address,string memory,string memory,uint256)": "infinite",
								"log(address,string memory,uint256)": "infinite",
								"log(address,string memory,uint256,address)": "infinite",
								"log(address,string memory,uint256,bool)": "infinite",
								"log(address,string memory,uint256,string memory)": "infinite",
								"log(address,string memory,uint256,uint256)": "infinite",
								"log(address,uint256)": "infinite",
								"log(address,uint256,address)": "infinite",
								"log(address,uint256,address,address)": "infinite",
								"log(address,uint256,address,bool)": "infinite",
								"log(address,uint256,address,string memory)": "infinite",
								"log(address,uint256,address,uint256)": "infinite",
								"log(address,uint256,bool)": "infinite",
								"log(address,uint256,bool,address)": "infinite",
								"log(address,uint256,bool,bool)": "infinite",
								"log(address,uint256,bool,string memory)": "infinite",
								"log(address,uint256,bool,uint256)": "infinite",
								"log(address,uint256,string memory)": "infinite",
								"log(address,uint256,string memory,address)": "infinite",
								"log(address,uint256,string memory,bool)": "infinite",
								"log(address,uint256,string memory,string memory)": "infinite",
								"log(address,uint256,string memory,uint256)": "infinite",
								"log(address,uint256,uint256)": "infinite",
								"log(address,uint256,uint256,address)": "infinite",
								"log(address,uint256,uint256,bool)": "infinite",
								"log(address,uint256,uint256,string memory)": "infinite",
								"log(address,uint256,uint256,uint256)": "infinite",
								"log(bool)": "infinite",
								"log(bool,address)": "infinite",
								"log(bool,address,address)": "infinite",
								"log(bool,address,address,address)": "infinite",
								"log(bool,address,address,bool)": "infinite",
								"log(bool,address,address,string memory)": "infinite",
								"log(bool,address,address,uint256)": "infinite",
								"log(bool,address,bool)": "infinite",
								"log(bool,address,bool,address)": "infinite",
								"log(bool,address,bool,bool)": "infinite",
								"log(bool,address,bool,string memory)": "infinite",
								"log(bool,address,bool,uint256)": "infinite",
								"log(bool,address,string memory)": "infinite",
								"log(bool,address,string memory,address)": "infinite",
								"log(bool,address,string memory,bool)": "infinite",
								"log(bool,address,string memory,string memory)": "infinite",
								"log(bool,address,string memory,uint256)": "infinite",
								"log(bool,address,uint256)": "infinite",
								"log(bool,address,uint256,address)": "infinite",
								"log(bool,address,uint256,bool)": "infinite",
								"log(bool,address,uint256,string memory)": "infinite",
								"log(bool,address,uint256,uint256)": "infinite",
								"log(bool,bool)": "infinite",
								"log(bool,bool,address)": "infinite",
								"log(bool,bool,address,address)": "infinite",
								"log(bool,bool,address,bool)": "infinite",
								"log(bool,bool,address,string memory)": "infinite",
								"log(bool,bool,address,uint256)": "infinite",
								"log(bool,bool,bool)": "infinite",
								"log(bool,bool,bool,address)": "infinite",
								"log(bool,bool,bool,bool)": "infinite",
								"log(bool,bool,bool,string memory)": "infinite",
								"log(bool,bool,bool,uint256)": "infinite",
								"log(bool,bool,string memory)": "infinite",
								"log(bool,bool,string memory,address)": "infinite",
								"log(bool,bool,string memory,bool)": "infinite",
								"log(bool,bool,string memory,string memory)": "infinite",
								"log(bool,bool,string memory,uint256)": "infinite",
								"log(bool,bool,uint256)": "infinite",
								"log(bool,bool,uint256,address)": "infinite",
								"log(bool,bool,uint256,bool)": "infinite",
								"log(bool,bool,uint256,string memory)": "infinite",
								"log(bool,bool,uint256,uint256)": "infinite",
								"log(bool,string memory)": "infinite",
								"log(bool,string memory,address)": "infinite",
								"log(bool,string memory,address,address)": "infinite",
								"log(bool,string memory,address,bool)": "infinite",
								"log(bool,string memory,address,string memory)": "infinite",
								"log(bool,string memory,address,uint256)": "infinite",
								"log(bool,string memory,bool)": "infinite",
								"log(bool,string memory,bool,address)": "infinite",
								"log(bool,string memory,bool,bool)": "infinite",
								"log(bool,string memory,bool,string memory)": "infinite",
								"log(bool,string memory,bool,uint256)": "infinite",
								"log(bool,string memory,string memory)": "infinite",
								"log(bool,string memory,string memory,address)": "infinite",
								"log(bool,string memory,string memory,bool)": "infinite",
								"log(bool,string memory,string memory,string memory)": "infinite",
								"log(bool,string memory,string memory,uint256)": "infinite",
								"log(bool,string memory,uint256)": "infinite",
								"log(bool,string memory,uint256,address)": "infinite",
								"log(bool,string memory,uint256,bool)": "infinite",
								"log(bool,string memory,uint256,string memory)": "infinite",
								"log(bool,string memory,uint256,uint256)": "infinite",
								"log(bool,uint256)": "infinite",
								"log(bool,uint256,address)": "infinite",
								"log(bool,uint256,address,address)": "infinite",
								"log(bool,uint256,address,bool)": "infinite",
								"log(bool,uint256,address,string memory)": "infinite",
								"log(bool,uint256,address,uint256)": "infinite",
								"log(bool,uint256,bool)": "infinite",
								"log(bool,uint256,bool,address)": "infinite",
								"log(bool,uint256,bool,bool)": "infinite",
								"log(bool,uint256,bool,string memory)": "infinite",
								"log(bool,uint256,bool,uint256)": "infinite",
								"log(bool,uint256,string memory)": "infinite",
								"log(bool,uint256,string memory,address)": "infinite",
								"log(bool,uint256,string memory,bool)": "infinite",
								"log(bool,uint256,string memory,string memory)": "infinite",
								"log(bool,uint256,string memory,uint256)": "infinite",
								"log(bool,uint256,uint256)": "infinite",
								"log(bool,uint256,uint256,address)": "infinite",
								"log(bool,uint256,uint256,bool)": "infinite",
								"log(bool,uint256,uint256,string memory)": "infinite",
								"log(bool,uint256,uint256,uint256)": "infinite",
								"log(string memory)": "infinite",
								"log(string memory,address)": "infinite",
								"log(string memory,address,address)": "infinite",
								"log(string memory,address,address,address)": "infinite",
								"log(string memory,address,address,bool)": "infinite",
								"log(string memory,address,address,string memory)": "infinite",
								"log(string memory,address,address,uint256)": "infinite",
								"log(string memory,address,bool)": "infinite",
								"log(string memory,address,bool,address)": "infinite",
								"log(string memory,address,bool,bool)": "infinite",
								"log(string memory,address,bool,string memory)": "infinite",
								"log(string memory,address,bool,uint256)": "infinite",
								"log(string memory,address,string memory)": "infinite",
								"log(string memory,address,string memory,address)": "infinite",
								"log(string memory,address,string memory,bool)": "infinite",
								"log(string memory,address,string memory,string memory)": "infinite",
								"log(string memory,address,string memory,uint256)": "infinite",
								"log(string memory,address,uint256)": "infinite",
								"log(string memory,address,uint256,address)": "infinite",
								"log(string memory,address,uint256,bool)": "infinite",
								"log(string memory,address,uint256,string memory)": "infinite",
								"log(string memory,address,uint256,uint256)": "infinite",
								"log(string memory,bool)": "infinite",
								"log(string memory,bool,address)": "infinite",
								"log(string memory,bool,address,address)": "infinite",
								"log(string memory,bool,address,bool)": "infinite",
								"log(string memory,bool,address,string memory)": "infinite",
								"log(string memory,bool,address,uint256)": "infinite",
								"log(string memory,bool,bool)": "infinite",
								"log(string memory,bool,bool,address)": "infinite",
								"log(string memory,bool,bool,bool)": "infinite",
								"log(string memory,bool,bool,string memory)": "infinite",
								"log(string memory,bool,bool,uint256)": "infinite",
								"log(string memory,bool,string memory)": "infinite",
								"log(string memory,bool,string memory,address)": "infinite",
								"log(string memory,bool,string memory,bool)": "infinite",
								"log(string memory,bool,string memory,string memory)": "infinite",
								"log(string memory,bool,string memory,uint256)": "infinite",
								"log(string memory,bool,uint256)": "infinite",
								"log(string memory,bool,uint256,address)": "infinite",
								"log(string memory,bool,uint256,bool)": "infinite",
								"log(string memory,bool,uint256,string memory)": "infinite",
								"log(string memory,bool,uint256,uint256)": "infinite",
								"log(string memory,string memory)": "infinite",
								"log(string memory,string memory,address)": "infinite",
								"log(string memory,string memory,address,address)": "infinite",
								"log(string memory,string memory,address,bool)": "infinite",
								"log(string memory,string memory,address,string memory)": "infinite",
								"log(string memory,string memory,address,uint256)": "infinite",
								"log(string memory,string memory,bool)": "infinite",
								"log(string memory,string memory,bool,address)": "infinite",
								"log(string memory,string memory,bool,bool)": "infinite",
								"log(string memory,string memory,bool,string memory)": "infinite",
								"log(string memory,string memory,bool,uint256)": "infinite",
								"log(string memory,string memory,string memory)": "infinite",
								"log(string memory,string memory,string memory,address)": "infinite",
								"log(string memory,string memory,string memory,bool)": "infinite",
								"log(string memory,string memory,string memory,string memory)": "infinite",
								"log(string memory,string memory,string memory,uint256)": "infinite",
								"log(string memory,string memory,uint256)": "infinite",
								"log(string memory,string memory,uint256,address)": "infinite",
								"log(string memory,string memory,uint256,bool)": "infinite",
								"log(string memory,string memory,uint256,string memory)": "infinite",
								"log(string memory,string memory,uint256,uint256)": "infinite",
								"log(string memory,uint256)": "infinite",
								"log(string memory,uint256,address)": "infinite",
								"log(string memory,uint256,address,address)": "infinite",
								"log(string memory,uint256,address,bool)": "infinite",
								"log(string memory,uint256,address,string memory)": "infinite",
								"log(string memory,uint256,address,uint256)": "infinite",
								"log(string memory,uint256,bool)": "infinite",
								"log(string memory,uint256,bool,address)": "infinite",
								"log(string memory,uint256,bool,bool)": "infinite",
								"log(string memory,uint256,bool,string memory)": "infinite",
								"log(string memory,uint256,bool,uint256)": "infinite",
								"log(string memory,uint256,string memory)": "infinite",
								"log(string memory,uint256,string memory,address)": "infinite",
								"log(string memory,uint256,string memory,bool)": "infinite",
								"log(string memory,uint256,string memory,string memory)": "infinite",
								"log(string memory,uint256,string memory,uint256)": "infinite",
								"log(string memory,uint256,uint256)": "infinite",
								"log(string memory,uint256,uint256,address)": "infinite",
								"log(string memory,uint256,uint256,bool)": "infinite",
								"log(string memory,uint256,uint256,string memory)": "infinite",
								"log(string memory,uint256,uint256,uint256)": "infinite",
								"log(uint256)": "infinite",
								"log(uint256,address)": "infinite",
								"log(uint256,address,address)": "infinite",
								"log(uint256,address,address,address)": "infinite",
								"log(uint256,address,address,bool)": "infinite",
								"log(uint256,address,address,string memory)": "infinite",
								"log(uint256,address,address,uint256)": "infinite",
								"log(uint256,address,bool)": "infinite",
								"log(uint256,address,bool,address)": "infinite",
								"log(uint256,address,bool,bool)": "infinite",
								"log(uint256,address,bool,string memory)": "infinite",
								"log(uint256,address,bool,uint256)": "infinite",
								"log(uint256,address,string memory)": "infinite",
								"log(uint256,address,string memory,address)": "infinite",
								"log(uint256,address,string memory,bool)": "infinite",
								"log(uint256,address,string memory,string memory)": "infinite",
								"log(uint256,address,string memory,uint256)": "infinite",
								"log(uint256,address,uint256)": "infinite",
								"log(uint256,address,uint256,address)": "infinite",
								"log(uint256,address,uint256,bool)": "infinite",
								"log(uint256,address,uint256,string memory)": "infinite",
								"log(uint256,address,uint256,uint256)": "infinite",
								"log(uint256,bool)": "infinite",
								"log(uint256,bool,address)": "infinite",
								"log(uint256,bool,address,address)": "infinite",
								"log(uint256,bool,address,bool)": "infinite",
								"log(uint256,bool,address,string memory)": "infinite",
								"log(uint256,bool,address,uint256)": "infinite",
								"log(uint256,bool,bool)": "infinite",
								"log(uint256,bool,bool,address)": "infinite",
								"log(uint256,bool,bool,bool)": "infinite",
								"log(uint256,bool,bool,string memory)": "infinite",
								"log(uint256,bool,bool,uint256)": "infinite",
								"log(uint256,bool,string memory)": "infinite",
								"log(uint256,bool,string memory,address)": "infinite",
								"log(uint256,bool,string memory,bool)": "infinite",
								"log(uint256,bool,string memory,string memory)": "infinite",
								"log(uint256,bool,string memory,uint256)": "infinite",
								"log(uint256,bool,uint256)": "infinite",
								"log(uint256,bool,uint256,address)": "infinite",
								"log(uint256,bool,uint256,bool)": "infinite",
								"log(uint256,bool,uint256,string memory)": "infinite",
								"log(uint256,bool,uint256,uint256)": "infinite",
								"log(uint256,string memory)": "infinite",
								"log(uint256,string memory,address)": "infinite",
								"log(uint256,string memory,address,address)": "infinite",
								"log(uint256,string memory,address,bool)": "infinite",
								"log(uint256,string memory,address,string memory)": "infinite",
								"log(uint256,string memory,address,uint256)": "infinite",
								"log(uint256,string memory,bool)": "infinite",
								"log(uint256,string memory,bool,address)": "infinite",
								"log(uint256,string memory,bool,bool)": "infinite",
								"log(uint256,string memory,bool,string memory)": "infinite",
								"log(uint256,string memory,bool,uint256)": "infinite",
								"log(uint256,string memory,string memory)": "infinite",
								"log(uint256,string memory,string memory,address)": "infinite",
								"log(uint256,string memory,string memory,bool)": "infinite",
								"log(uint256,string memory,string memory,string memory)": "infinite",
								"log(uint256,string memory,string memory,uint256)": "infinite",
								"log(uint256,string memory,uint256)": "infinite",
								"log(uint256,string memory,uint256,address)": "infinite",
								"log(uint256,string memory,uint256,bool)": "infinite",
								"log(uint256,string memory,uint256,string memory)": "infinite",
								"log(uint256,string memory,uint256,uint256)": "infinite",
								"log(uint256,uint256)": "infinite",
								"log(uint256,uint256,address)": "infinite",
								"log(uint256,uint256,address,address)": "infinite",
								"log(uint256,uint256,address,bool)": "infinite",
								"log(uint256,uint256,address,string memory)": "infinite",
								"log(uint256,uint256,address,uint256)": "infinite",
								"log(uint256,uint256,bool)": "infinite",
								"log(uint256,uint256,bool,address)": "infinite",
								"log(uint256,uint256,bool,bool)": "infinite",
								"log(uint256,uint256,bool,string memory)": "infinite",
								"log(uint256,uint256,bool,uint256)": "infinite",
								"log(uint256,uint256,string memory)": "infinite",
								"log(uint256,uint256,string memory,address)": "infinite",
								"log(uint256,uint256,string memory,bool)": "infinite",
								"log(uint256,uint256,string memory,string memory)": "infinite",
								"log(uint256,uint256,string memory,uint256)": "infinite",
								"log(uint256,uint256,uint256)": "infinite",
								"log(uint256,uint256,uint256,address)": "infinite",
								"log(uint256,uint256,uint256,bool)": "infinite",
								"log(uint256,uint256,uint256,string memory)": "infinite",
								"log(uint256,uint256,uint256,uint256)": "infinite",
								"logAddress(address)": "infinite",
								"logBool(bool)": "infinite",
								"logBytes(bytes memory)": "infinite",
								"logBytes1(bytes1)": "infinite",
								"logBytes10(bytes10)": "infinite",
								"logBytes11(bytes11)": "infinite",
								"logBytes12(bytes12)": "infinite",
								"logBytes13(bytes13)": "infinite",
								"logBytes14(bytes14)": "infinite",
								"logBytes15(bytes15)": "infinite",
								"logBytes16(bytes16)": "infinite",
								"logBytes17(bytes17)": "infinite",
								"logBytes18(bytes18)": "infinite",
								"logBytes19(bytes19)": "infinite",
								"logBytes2(bytes2)": "infinite",
								"logBytes20(bytes20)": "infinite",
								"logBytes21(bytes21)": "infinite",
								"logBytes22(bytes22)": "infinite",
								"logBytes23(bytes23)": "infinite",
								"logBytes24(bytes24)": "infinite",
								"logBytes25(bytes25)": "infinite",
								"logBytes26(bytes26)": "infinite",
								"logBytes27(bytes27)": "infinite",
								"logBytes28(bytes28)": "infinite",
								"logBytes29(bytes29)": "infinite",
								"logBytes3(bytes3)": "infinite",
								"logBytes30(bytes30)": "infinite",
								"logBytes31(bytes31)": "infinite",
								"logBytes32(bytes32)": "infinite",
								"logBytes4(bytes4)": "infinite",
								"logBytes5(bytes5)": "infinite",
								"logBytes6(bytes6)": "infinite",
								"logBytes7(bytes7)": "infinite",
								"logBytes8(bytes8)": "infinite",
								"logBytes9(bytes9)": "infinite",
								"logInt(int256)": "infinite",
								"logString(string memory)": "infinite",
								"logUint(uint256)": "infinite"
							}
						},
						"legacyAssembly": {
							".code": [
								{
									"begin": 67,
									"end": 62047,
									"name": "PUSH #[$]",
									"source": 12,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "PUSH [$]",
									"source": 12,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "PUSH",
									"source": 12,
									"value": "B"
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "DUP3",
									"source": 12
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "DUP3",
									"source": 12
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "DUP3",
									"source": 12
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "CODECOPY",
									"source": 12
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "DUP1",
									"source": 12
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "MLOAD",
									"source": 12
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "PUSH",
									"source": 12,
									"value": "0"
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "BYTE",
									"source": 12
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "PUSH",
									"source": 12,
									"value": "73"
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "EQ",
									"source": 12
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "PUSH [tag]",
									"source": 12,
									"value": "1"
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "JUMPI",
									"source": 12
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "PUSH",
									"source": 12,
									"value": "4E487B7100000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "PUSH",
									"source": 12,
									"value": "0"
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "MSTORE",
									"source": 12
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "PUSH",
									"source": 12,
									"value": "0"
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "PUSH",
									"source": 12,
									"value": "4"
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "MSTORE",
									"source": 12
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "PUSH",
									"source": 12,
									"value": "24"
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "PUSH",
									"source": 12,
									"value": "0"
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "REVERT",
									"source": 12
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "tag",
									"source": 12,
									"value": "1"
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "JUMPDEST",
									"source": 12
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "ADDRESS",
									"source": 12
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "PUSH",
									"source": 12,
									"value": "0"
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "MSTORE",
									"source": 12
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "PUSH",
									"source": 12,
									"value": "73"
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "DUP2",
									"source": 12
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "MSTORE8",
									"source": 12
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "DUP3",
									"source": 12
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "DUP2",
									"source": 12
								},
								{
									"begin": 67,
									"end": 62047,
									"name": "RETURN",
									"source": 12
								}
							],
							".data": {
								"0": {
									".auxdata": "a26469706673582212201066baf0131e6eab0b5e9cc6cb6d59b6b1ce6f56164f850f45f0e1316d420ed964736f6c63430008040033",
									".code": [
										{
											"begin": 67,
											"end": 62047,
											"name": "PUSHDEPLOYADDRESS",
											"source": 12
										},
										{
											"begin": 67,
											"end": 62047,
											"name": "ADDRESS",
											"source": 12
										},
										{
											"begin": 67,
											"end": 62047,
											"name": "EQ",
											"source": 12
										},
										{
											"begin": 67,
											"end": 62047,
											"name": "PUSH",
											"source": 12,
											"value": "80"
										},
										{
											"begin": 67,
											"end": 62047,
											"name": "PUSH",
											"source": 12,
											"value": "40"
										},
										{
											"begin": 67,
											"end": 62047,
											"name": "MSTORE",
											"source": 12
										},
										{
											"begin": 67,
											"end": 62047,
											"name": "PUSH",
											"source": 12,
											"value": "0"
										},
										{
											"begin": 67,
											"end": 62047,
											"name": "DUP1",
											"source": 12
										},
										{
											"begin": 67,
											"end": 62047,
											"name": "REVERT",
											"source": 12
										}
									]
								}
							}
						},
						"methodIdentifiers": {}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat/console.sol\":\"console\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat/console.sol\":{\"keccak256\":\"0x72b6a1d297cd3b033d7c2e4a7e7864934bb767db6453623f1c3082c6534547f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8cb8681076e765c214e0d51cac989325f6b98e315eaae06ee0cbd5a9f084763\",\"dweb:/ipfs/QmNWGHi4zmjxQTYN3NMGnJd49jBT5dE4bxTdWEaDuJrC6N\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [],
						"types": null
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			}
		},
		"errors": [
			{
				"component": "general",
				"errorCode": "5667",
				"formattedMessage": "Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n   --> bridges/facets/StargateFacet.sol:173:9:\n    |\n173 |         uint16 _chainId,\n    |         ^^^^^^^^^^^^^^^\n\n",
				"message": "Unused function parameter. Remove or comment out the variable name to silence this warning.",
				"severity": "warning",
				"sourceLocation": {
					"end": 7081,
					"file": "bridges/facets/StargateFacet.sol",
					"start": 7066
				},
				"type": "Warning"
			},
			{
				"component": "general",
				"errorCode": "5667",
				"formattedMessage": "Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n   --> bridges/facets/StargateFacet.sol:174:9:\n    |\n174 |         bytes memory _srcAddress,\n    |         ^^^^^^^^^^^^^^^^^^^^^^^^\n\n",
				"message": "Unused function parameter. Remove or comment out the variable name to silence this warning.",
				"severity": "warning",
				"sourceLocation": {
					"end": 7115,
					"file": "bridges/facets/StargateFacet.sol",
					"start": 7091
				},
				"type": "Warning"
			},
			{
				"component": "general",
				"errorCode": "5667",
				"formattedMessage": "Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n   --> bridges/facets/StargateFacet.sol:175:9:\n    |\n175 |         uint256 _nonce,\n    |         ^^^^^^^^^^^^^^\n\n",
				"message": "Unused function parameter. Remove or comment out the variable name to silence this warning.",
				"severity": "warning",
				"sourceLocation": {
					"end": 7139,
					"file": "bridges/facets/StargateFacet.sol",
					"start": 7125
				},
				"type": "Warning"
			}
		],
		"sources": {
			"@openzeppelin/contracts/token/ERC20/IERC20.sol": {
				"ast": {
					"absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
					"exportedSymbols": {
						"IERC20": [
							77
						]
					},
					"id": 78,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 1,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".0"
							],
							"nodeType": "PragmaDirective",
							"src": "106:23:0"
						},
						{
							"abstract": false,
							"baseContracts": [],
							"contractDependencies": [],
							"contractKind": "interface",
							"documentation": {
								"id": 2,
								"nodeType": "StructuredDocumentation",
								"src": "131:70:0",
								"text": " @dev Interface of the ERC20 standard as defined in the EIP."
							},
							"fullyImplemented": false,
							"id": 77,
							"linearizedBaseContracts": [
								77
							],
							"name": "IERC20",
							"nameLocation": "212:6:0",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"anonymous": false,
									"documentation": {
										"id": 3,
										"nodeType": "StructuredDocumentation",
										"src": "225:158:0",
										"text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."
									},
									"id": 11,
									"name": "Transfer",
									"nameLocation": "394:8:0",
									"nodeType": "EventDefinition",
									"parameters": {
										"id": 10,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5,
												"indexed": true,
												"mutability": "mutable",
												"name": "from",
												"nameLocation": "419:4:0",
												"nodeType": "VariableDeclaration",
												"scope": 11,
												"src": "403:20:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "403:7:0",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7,
												"indexed": true,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "441:2:0",
												"nodeType": "VariableDeclaration",
												"scope": 11,
												"src": "425:18:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "425:7:0",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9,
												"indexed": false,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "453:5:0",
												"nodeType": "VariableDeclaration",
												"scope": 11,
												"src": "445:13:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 8,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "445:7:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "402:57:0"
									},
									"src": "388:72:0"
								},
								{
									"anonymous": false,
									"documentation": {
										"id": 12,
										"nodeType": "StructuredDocumentation",
										"src": "466:148:0",
										"text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."
									},
									"id": 20,
									"name": "Approval",
									"nameLocation": "625:8:0",
									"nodeType": "EventDefinition",
									"parameters": {
										"id": 19,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 14,
												"indexed": true,
												"mutability": "mutable",
												"name": "owner",
												"nameLocation": "650:5:0",
												"nodeType": "VariableDeclaration",
												"scope": 20,
												"src": "634:21:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 13,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "634:7:0",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 16,
												"indexed": true,
												"mutability": "mutable",
												"name": "spender",
												"nameLocation": "673:7:0",
												"nodeType": "VariableDeclaration",
												"scope": 20,
												"src": "657:23:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 15,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "657:7:0",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 18,
												"indexed": false,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "690:5:0",
												"nodeType": "VariableDeclaration",
												"scope": 20,
												"src": "682:13:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 17,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "682:7:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "633:63:0"
									},
									"src": "619:78:0"
								},
								{
									"documentation": {
										"id": 21,
										"nodeType": "StructuredDocumentation",
										"src": "703:66:0",
										"text": " @dev Returns the amount of tokens in existence."
									},
									"functionSelector": "18160ddd",
									"id": 26,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "totalSupply",
									"nameLocation": "783:11:0",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 22,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "794:2:0"
									},
									"returnParameters": {
										"id": 25,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 24,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 26,
												"src": "820:7:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 23,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "820:7:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "819:9:0"
									},
									"scope": 77,
									"src": "774:55:0",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"documentation": {
										"id": 27,
										"nodeType": "StructuredDocumentation",
										"src": "835:72:0",
										"text": " @dev Returns the amount of tokens owned by `account`."
									},
									"functionSelector": "70a08231",
									"id": 34,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "balanceOf",
									"nameLocation": "921:9:0",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 30,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 29,
												"mutability": "mutable",
												"name": "account",
												"nameLocation": "939:7:0",
												"nodeType": "VariableDeclaration",
												"scope": 34,
												"src": "931:15:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 28,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "931:7:0",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "930:17:0"
									},
									"returnParameters": {
										"id": 33,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 32,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 34,
												"src": "971:7:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 31,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "971:7:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "970:9:0"
									},
									"scope": 77,
									"src": "912:68:0",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"documentation": {
										"id": 35,
										"nodeType": "StructuredDocumentation",
										"src": "986:202:0",
										"text": " @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."
									},
									"functionSelector": "a9059cbb",
									"id": 44,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "transfer",
									"nameLocation": "1202:8:0",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 40,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 37,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "1219:2:0",
												"nodeType": "VariableDeclaration",
												"scope": 44,
												"src": "1211:10:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 36,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1211:7:0",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 39,
												"mutability": "mutable",
												"name": "amount",
												"nameLocation": "1231:6:0",
												"nodeType": "VariableDeclaration",
												"scope": 44,
												"src": "1223:14:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 38,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1223:7:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1210:28:0"
									},
									"returnParameters": {
										"id": 43,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 42,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 44,
												"src": "1257:4:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 41,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "1257:4:0",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1256:6:0"
									},
									"scope": 77,
									"src": "1193:70:0",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"documentation": {
										"id": 45,
										"nodeType": "StructuredDocumentation",
										"src": "1269:264:0",
										"text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."
									},
									"functionSelector": "dd62ed3e",
									"id": 54,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "allowance",
									"nameLocation": "1547:9:0",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 50,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 47,
												"mutability": "mutable",
												"name": "owner",
												"nameLocation": "1565:5:0",
												"nodeType": "VariableDeclaration",
												"scope": 54,
												"src": "1557:13:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 46,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1557:7:0",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 49,
												"mutability": "mutable",
												"name": "spender",
												"nameLocation": "1580:7:0",
												"nodeType": "VariableDeclaration",
												"scope": 54,
												"src": "1572:15:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 48,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1572:7:0",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1556:32:0"
									},
									"returnParameters": {
										"id": 53,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 52,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 54,
												"src": "1612:7:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 51,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1612:7:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1611:9:0"
									},
									"scope": 77,
									"src": "1538:83:0",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"documentation": {
										"id": 55,
										"nodeType": "StructuredDocumentation",
										"src": "1627:642:0",
										"text": " @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."
									},
									"functionSelector": "095ea7b3",
									"id": 64,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "approve",
									"nameLocation": "2283:7:0",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 60,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 57,
												"mutability": "mutable",
												"name": "spender",
												"nameLocation": "2299:7:0",
												"nodeType": "VariableDeclaration",
												"scope": 64,
												"src": "2291:15:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 56,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2291:7:0",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 59,
												"mutability": "mutable",
												"name": "amount",
												"nameLocation": "2316:6:0",
												"nodeType": "VariableDeclaration",
												"scope": 64,
												"src": "2308:14:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 58,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2308:7:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2290:33:0"
									},
									"returnParameters": {
										"id": 63,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 62,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 64,
												"src": "2342:4:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 61,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "2342:4:0",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2341:6:0"
									},
									"scope": 77,
									"src": "2274:74:0",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"documentation": {
										"id": 65,
										"nodeType": "StructuredDocumentation",
										"src": "2354:287:0",
										"text": " @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."
									},
									"functionSelector": "23b872dd",
									"id": 76,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "transferFrom",
									"nameLocation": "2655:12:0",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 72,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 67,
												"mutability": "mutable",
												"name": "from",
												"nameLocation": "2685:4:0",
												"nodeType": "VariableDeclaration",
												"scope": 76,
												"src": "2677:12:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 66,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2677:7:0",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 69,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "2707:2:0",
												"nodeType": "VariableDeclaration",
												"scope": 76,
												"src": "2699:10:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 68,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2699:7:0",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 71,
												"mutability": "mutable",
												"name": "amount",
												"nameLocation": "2727:6:0",
												"nodeType": "VariableDeclaration",
												"scope": 76,
												"src": "2719:14:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 70,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2719:7:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2667:72:0"
									},
									"returnParameters": {
										"id": 75,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 74,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 76,
												"src": "2758:4:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 73,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "2758:4:0",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2757:6:0"
									},
									"scope": 77,
									"src": "2646:118:0",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								}
							],
							"scope": 78,
							"src": "202:2564:0",
							"usedErrors": []
						}
					],
					"src": "106:2661:0"
				},
				"id": 0
			},
			"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol": {
				"ast": {
					"absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol",
					"exportedSymbols": {
						"IERC20Permit": [
							113
						]
					},
					"id": 114,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 79,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".0"
							],
							"nodeType": "PragmaDirective",
							"src": "114:23:1"
						},
						{
							"abstract": false,
							"baseContracts": [],
							"contractDependencies": [],
							"contractKind": "interface",
							"documentation": {
								"id": 80,
								"nodeType": "StructuredDocumentation",
								"src": "139:480:1",
								"text": " @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n need to send a transaction, and thus is not required to hold Ether at all."
							},
							"fullyImplemented": false,
							"id": 113,
							"linearizedBaseContracts": [
								113
							],
							"name": "IERC20Permit",
							"nameLocation": "630:12:1",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"documentation": {
										"id": 81,
										"nodeType": "StructuredDocumentation",
										"src": "649:792:1",
										"text": " @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n given ``owner``'s signed approval.\n IMPORTANT: The same issues {IERC20-approve} has related to transaction\n ordering also apply here.\n Emits an {Approval} event.\n Requirements:\n - `spender` cannot be the zero address.\n - `deadline` must be a timestamp in the future.\n - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n over the EIP712-formatted function arguments.\n - the signature must use ``owner``'s current nonce (see {nonces}).\n For more information on the signature format, see the\n https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n section]."
									},
									"functionSelector": "d505accf",
									"id": 98,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "permit",
									"nameLocation": "1455:6:1",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 96,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 83,
												"mutability": "mutable",
												"name": "owner",
												"nameLocation": "1479:5:1",
												"nodeType": "VariableDeclaration",
												"scope": 98,
												"src": "1471:13:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 82,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1471:7:1",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 85,
												"mutability": "mutable",
												"name": "spender",
												"nameLocation": "1502:7:1",
												"nodeType": "VariableDeclaration",
												"scope": 98,
												"src": "1494:15:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 84,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1494:7:1",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 87,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "1527:5:1",
												"nodeType": "VariableDeclaration",
												"scope": 98,
												"src": "1519:13:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 86,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1519:7:1",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 89,
												"mutability": "mutable",
												"name": "deadline",
												"nameLocation": "1550:8:1",
												"nodeType": "VariableDeclaration",
												"scope": 98,
												"src": "1542:16:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 88,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1542:7:1",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 91,
												"mutability": "mutable",
												"name": "v",
												"nameLocation": "1574:1:1",
												"nodeType": "VariableDeclaration",
												"scope": 98,
												"src": "1568:7:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint8",
													"typeString": "uint8"
												},
												"typeName": {
													"id": 90,
													"name": "uint8",
													"nodeType": "ElementaryTypeName",
													"src": "1568:5:1",
													"typeDescriptions": {
														"typeIdentifier": "t_uint8",
														"typeString": "uint8"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 93,
												"mutability": "mutable",
												"name": "r",
												"nameLocation": "1593:1:1",
												"nodeType": "VariableDeclaration",
												"scope": 98,
												"src": "1585:9:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 92,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "1585:7:1",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 95,
												"mutability": "mutable",
												"name": "s",
												"nameLocation": "1612:1:1",
												"nodeType": "VariableDeclaration",
												"scope": 98,
												"src": "1604:9:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 94,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "1604:7:1",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1461:158:1"
									},
									"returnParameters": {
										"id": 97,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1628:0:1"
									},
									"scope": 113,
									"src": "1446:183:1",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"documentation": {
										"id": 99,
										"nodeType": "StructuredDocumentation",
										"src": "1635:294:1",
										"text": " @dev Returns the current nonce for `owner`. This value must be\n included whenever a signature is generated for {permit}.\n Every successful call to {permit} increases ``owner``'s nonce by one. This\n prevents a signature from being used multiple times."
									},
									"functionSelector": "7ecebe00",
									"id": 106,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "nonces",
									"nameLocation": "1943:6:1",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 102,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 101,
												"mutability": "mutable",
												"name": "owner",
												"nameLocation": "1958:5:1",
												"nodeType": "VariableDeclaration",
												"scope": 106,
												"src": "1950:13:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 100,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1950:7:1",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1949:15:1"
									},
									"returnParameters": {
										"id": 105,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 104,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 106,
												"src": "1988:7:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 103,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1988:7:1",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1987:9:1"
									},
									"scope": 113,
									"src": "1934:63:1",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								},
								{
									"documentation": {
										"id": 107,
										"nodeType": "StructuredDocumentation",
										"src": "2003:128:1",
										"text": " @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."
									},
									"functionSelector": "3644e515",
									"id": 112,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "DOMAIN_SEPARATOR",
									"nameLocation": "2198:16:1",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 108,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2214:2:1"
									},
									"returnParameters": {
										"id": 111,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 110,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 112,
												"src": "2240:7:1",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 109,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "2240:7:1",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2239:9:1"
									},
									"scope": 113,
									"src": "2189:60:1",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								}
							],
							"scope": 114,
							"src": "620:1631:1",
							"usedErrors": []
						}
					],
					"src": "114:2138:1"
				},
				"id": 1
			},
			"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol": {
				"ast": {
					"absolutePath": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
					"exportedSymbols": {
						"Address": [
							689
						],
						"IERC20": [
							77
						],
						"IERC20Permit": [
							113
						],
						"SafeERC20": [
							394
						]
					},
					"id": 395,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 115,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".0"
							],
							"nodeType": "PragmaDirective",
							"src": "115:23:2"
						},
						{
							"absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
							"file": "../IERC20.sol",
							"id": 116,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 395,
							"sourceUnit": 78,
							"src": "140:23:2",
							"symbolAliases": [],
							"unitAlias": ""
						},
						{
							"absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol",
							"file": "../extensions/draft-IERC20Permit.sol",
							"id": 117,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 395,
							"sourceUnit": 114,
							"src": "164:46:2",
							"symbolAliases": [],
							"unitAlias": ""
						},
						{
							"absolutePath": "@openzeppelin/contracts/utils/Address.sol",
							"file": "../../../utils/Address.sol",
							"id": 118,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 395,
							"sourceUnit": 690,
							"src": "211:36:2",
							"symbolAliases": [],
							"unitAlias": ""
						},
						{
							"abstract": false,
							"baseContracts": [],
							"contractDependencies": [],
							"contractKind": "library",
							"documentation": {
								"id": 119,
								"nodeType": "StructuredDocumentation",
								"src": "249:457:2",
								"text": " @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc."
							},
							"fullyImplemented": true,
							"id": 394,
							"linearizedBaseContracts": [
								394
							],
							"name": "SafeERC20",
							"nameLocation": "715:9:2",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"id": 122,
									"libraryName": {
										"id": 120,
										"name": "Address",
										"nodeType": "IdentifierPath",
										"referencedDeclaration": 689,
										"src": "737:7:2"
									},
									"nodeType": "UsingForDirective",
									"src": "731:26:2",
									"typeName": {
										"id": 121,
										"name": "address",
										"nodeType": "ElementaryTypeName",
										"src": "749:7:2",
										"stateMutability": "nonpayable",
										"typeDescriptions": {
											"typeIdentifier": "t_address",
											"typeString": "address"
										}
									}
								},
								{
									"body": {
										"id": 144,
										"nodeType": "Block",
										"src": "865:103:2",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"id": 133,
															"name": "token",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 125,
															"src": "895:5:2",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_IERC20_$77",
																"typeString": "contract IERC20"
															}
														},
														{
															"arguments": [
																{
																	"expression": {
																		"expression": {
																			"id": 136,
																			"name": "token",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 125,
																			"src": "925:5:2",
																			"typeDescriptions": {
																				"typeIdentifier": "t_contract$_IERC20_$77",
																				"typeString": "contract IERC20"
																			}
																		},
																		"id": 137,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberName": "transfer",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 44,
																		"src": "925:14:2",
																		"typeDescriptions": {
																			"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
																			"typeString": "function (address,uint256) external returns (bool)"
																		}
																	},
																	"id": 138,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberName": "selector",
																	"nodeType": "MemberAccess",
																	"src": "925:23:2",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes4",
																		"typeString": "bytes4"
																	}
																},
																{
																	"id": 139,
																	"name": "to",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 127,
																	"src": "950:2:2",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 140,
																	"name": "value",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 129,
																	"src": "954:5:2",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_bytes4",
																		"typeString": "bytes4"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 134,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "902:3:2",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 135,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSelector",
																"nodeType": "MemberAccess",
																"src": "902:22:2",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (bytes4) pure returns (bytes memory)"
																}
															},
															"id": 141,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "902:58:2",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_contract$_IERC20_$77",
																"typeString": "contract IERC20"
															},
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 132,
														"name": "_callOptionalReturn",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 393,
														"src": "875:19:2",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$77_$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (contract IERC20,bytes memory)"
														}
													},
													"id": 142,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "875:86:2",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 143,
												"nodeType": "ExpressionStatement",
												"src": "875:86:2"
											}
										]
									},
									"id": 145,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "safeTransfer",
									"nameLocation": "772:12:2",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 130,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 125,
												"mutability": "mutable",
												"name": "token",
												"nameLocation": "801:5:2",
												"nodeType": "VariableDeclaration",
												"scope": 145,
												"src": "794:12:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_contract$_IERC20_$77",
													"typeString": "contract IERC20"
												},
												"typeName": {
													"id": 124,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 123,
														"name": "IERC20",
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 77,
														"src": "794:6:2"
													},
													"referencedDeclaration": 77,
													"src": "794:6:2",
													"typeDescriptions": {
														"typeIdentifier": "t_contract$_IERC20_$77",
														"typeString": "contract IERC20"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 127,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "824:2:2",
												"nodeType": "VariableDeclaration",
												"scope": 145,
												"src": "816:10:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 126,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "816:7:2",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 129,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "844:5:2",
												"nodeType": "VariableDeclaration",
												"scope": 145,
												"src": "836:13:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 128,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "836:7:2",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "784:71:2"
									},
									"returnParameters": {
										"id": 131,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "865:0:2"
									},
									"scope": 394,
									"src": "763:205:2",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 170,
										"nodeType": "Block",
										"src": "1102:113:2",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"id": 158,
															"name": "token",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 148,
															"src": "1132:5:2",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_IERC20_$77",
																"typeString": "contract IERC20"
															}
														},
														{
															"arguments": [
																{
																	"expression": {
																		"expression": {
																			"id": 161,
																			"name": "token",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 148,
																			"src": "1162:5:2",
																			"typeDescriptions": {
																				"typeIdentifier": "t_contract$_IERC20_$77",
																				"typeString": "contract IERC20"
																			}
																		},
																		"id": 162,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberName": "transferFrom",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 76,
																		"src": "1162:18:2",
																		"typeDescriptions": {
																			"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
																			"typeString": "function (address,address,uint256) external returns (bool)"
																		}
																	},
																	"id": 163,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberName": "selector",
																	"nodeType": "MemberAccess",
																	"src": "1162:27:2",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes4",
																		"typeString": "bytes4"
																	}
																},
																{
																	"id": 164,
																	"name": "from",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 150,
																	"src": "1191:4:2",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 165,
																	"name": "to",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 152,
																	"src": "1197:2:2",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 166,
																	"name": "value",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 154,
																	"src": "1201:5:2",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_bytes4",
																		"typeString": "bytes4"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 159,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "1139:3:2",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 160,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSelector",
																"nodeType": "MemberAccess",
																"src": "1139:22:2",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (bytes4) pure returns (bytes memory)"
																}
															},
															"id": 167,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "1139:68:2",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_contract$_IERC20_$77",
																"typeString": "contract IERC20"
															},
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 157,
														"name": "_callOptionalReturn",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 393,
														"src": "1112:19:2",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$77_$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (contract IERC20,bytes memory)"
														}
													},
													"id": 168,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "1112:96:2",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 169,
												"nodeType": "ExpressionStatement",
												"src": "1112:96:2"
											}
										]
									},
									"id": 171,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "safeTransferFrom",
									"nameLocation": "983:16:2",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 155,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 148,
												"mutability": "mutable",
												"name": "token",
												"nameLocation": "1016:5:2",
												"nodeType": "VariableDeclaration",
												"scope": 171,
												"src": "1009:12:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_contract$_IERC20_$77",
													"typeString": "contract IERC20"
												},
												"typeName": {
													"id": 147,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 146,
														"name": "IERC20",
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 77,
														"src": "1009:6:2"
													},
													"referencedDeclaration": 77,
													"src": "1009:6:2",
													"typeDescriptions": {
														"typeIdentifier": "t_contract$_IERC20_$77",
														"typeString": "contract IERC20"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 150,
												"mutability": "mutable",
												"name": "from",
												"nameLocation": "1039:4:2",
												"nodeType": "VariableDeclaration",
												"scope": 171,
												"src": "1031:12:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 149,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1031:7:2",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 152,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "1061:2:2",
												"nodeType": "VariableDeclaration",
												"scope": 171,
												"src": "1053:10:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 151,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1053:7:2",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 154,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "1081:5:2",
												"nodeType": "VariableDeclaration",
												"scope": 171,
												"src": "1073:13:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 153,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1073:7:2",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "999:93:2"
									},
									"returnParameters": {
										"id": 156,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1102:0:2"
									},
									"scope": 394,
									"src": "974:241:2",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 214,
										"nodeType": "Block",
										"src": "1581:497:2",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"commonType": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															"id": 198,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"components": [
																	{
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 185,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 183,
																			"name": "value",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 179,
																			"src": "1830:5:2",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "==",
																		"rightExpression": {
																			"hexValue": "30",
																			"id": 184,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "1839:1:2",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_0_by_1",
																				"typeString": "int_const 0"
																			},
																			"value": "0"
																		},
																		"src": "1830:10:2",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	}
																],
																"id": 186,
																"isConstant": false,
																"isInlineArray": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "TupleExpression",
																"src": "1829:12:2",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "||",
															"rightExpression": {
																"components": [
																	{
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 196,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"arguments": [
																				{
																					"arguments": [
																						{
																							"id": 191,
																							"name": "this",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 4294967268,
																							"src": "1870:4:2",
																							"typeDescriptions": {
																								"typeIdentifier": "t_contract$_SafeERC20_$394",
																								"typeString": "library SafeERC20"
																							}
																						}
																					],
																					"expression": {
																						"argumentTypes": [
																							{
																								"typeIdentifier": "t_contract$_SafeERC20_$394",
																								"typeString": "library SafeERC20"
																							}
																						],
																						"id": 190,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"lValueRequested": false,
																						"nodeType": "ElementaryTypeNameExpression",
																						"src": "1862:7:2",
																						"typeDescriptions": {
																							"typeIdentifier": "t_type$_t_address_$",
																							"typeString": "type(address)"
																						},
																						"typeName": {
																							"id": 189,
																							"name": "address",
																							"nodeType": "ElementaryTypeName",
																							"src": "1862:7:2",
																							"typeDescriptions": {}
																						}
																					},
																					"id": 192,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"kind": "typeConversion",
																					"lValueRequested": false,
																					"names": [],
																					"nodeType": "FunctionCall",
																					"src": "1862:13:2",
																					"tryCall": false,
																					"typeDescriptions": {
																						"typeIdentifier": "t_address",
																						"typeString": "address"
																					}
																				},
																				{
																					"id": 193,
																					"name": "spender",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 177,
																					"src": "1877:7:2",
																					"typeDescriptions": {
																						"typeIdentifier": "t_address",
																						"typeString": "address"
																					}
																				}
																			],
																			"expression": {
																				"argumentTypes": [
																					{
																						"typeIdentifier": "t_address",
																						"typeString": "address"
																					},
																					{
																						"typeIdentifier": "t_address",
																						"typeString": "address"
																					}
																				],
																				"expression": {
																					"id": 187,
																					"name": "token",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 175,
																					"src": "1846:5:2",
																					"typeDescriptions": {
																						"typeIdentifier": "t_contract$_IERC20_$77",
																						"typeString": "contract IERC20"
																					}
																				},
																				"id": 188,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"memberName": "allowance",
																				"nodeType": "MemberAccess",
																				"referencedDeclaration": 54,
																				"src": "1846:15:2",
																				"typeDescriptions": {
																					"typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$",
																					"typeString": "function (address,address) view external returns (uint256)"
																				}
																			},
																			"id": 194,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"kind": "functionCall",
																			"lValueRequested": false,
																			"names": [],
																			"nodeType": "FunctionCall",
																			"src": "1846:39:2",
																			"tryCall": false,
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "==",
																		"rightExpression": {
																			"hexValue": "30",
																			"id": 195,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "1889:1:2",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_0_by_1",
																				"typeString": "int_const 0"
																			},
																			"value": "0"
																		},
																		"src": "1846:44:2",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	}
																],
																"id": 197,
																"isConstant": false,
																"isInlineArray": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "TupleExpression",
																"src": "1845:46:2",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"src": "1829:62:2",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365",
															"id": 199,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "1905:56:2",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25",
																"typeString": "literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""
															},
															"value": "SafeERC20: approve from non-zero to non-zero allowance"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															{
																"typeIdentifier": "t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25",
																"typeString": "literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""
															}
														],
														"id": 182,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "1808:7:2",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 200,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "1808:163:2",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 201,
												"nodeType": "ExpressionStatement",
												"src": "1808:163:2"
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 203,
															"name": "token",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 175,
															"src": "2001:5:2",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_IERC20_$77",
																"typeString": "contract IERC20"
															}
														},
														{
															"arguments": [
																{
																	"expression": {
																		"expression": {
																			"id": 206,
																			"name": "token",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 175,
																			"src": "2031:5:2",
																			"typeDescriptions": {
																				"typeIdentifier": "t_contract$_IERC20_$77",
																				"typeString": "contract IERC20"
																			}
																		},
																		"id": 207,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberName": "approve",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 64,
																		"src": "2031:13:2",
																		"typeDescriptions": {
																			"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
																			"typeString": "function (address,uint256) external returns (bool)"
																		}
																	},
																	"id": 208,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberName": "selector",
																	"nodeType": "MemberAccess",
																	"src": "2031:22:2",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes4",
																		"typeString": "bytes4"
																	}
																},
																{
																	"id": 209,
																	"name": "spender",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 177,
																	"src": "2055:7:2",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 210,
																	"name": "value",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 179,
																	"src": "2064:5:2",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_bytes4",
																		"typeString": "bytes4"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 204,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "2008:3:2",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 205,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSelector",
																"nodeType": "MemberAccess",
																"src": "2008:22:2",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (bytes4) pure returns (bytes memory)"
																}
															},
															"id": 211,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "2008:62:2",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_contract$_IERC20_$77",
																"typeString": "contract IERC20"
															},
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 202,
														"name": "_callOptionalReturn",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 393,
														"src": "1981:19:2",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$77_$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (contract IERC20,bytes memory)"
														}
													},
													"id": 212,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "1981:90:2",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 213,
												"nodeType": "ExpressionStatement",
												"src": "1981:90:2"
											}
										]
									},
									"documentation": {
										"id": 172,
										"nodeType": "StructuredDocumentation",
										"src": "1221:249:2",
										"text": " @dev Deprecated. This function has issues similar to the ones found in\n {IERC20-approve}, and its usage is discouraged.\n Whenever possible, use {safeIncreaseAllowance} and\n {safeDecreaseAllowance} instead."
									},
									"id": 215,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "safeApprove",
									"nameLocation": "1484:11:2",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 180,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 175,
												"mutability": "mutable",
												"name": "token",
												"nameLocation": "1512:5:2",
												"nodeType": "VariableDeclaration",
												"scope": 215,
												"src": "1505:12:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_contract$_IERC20_$77",
													"typeString": "contract IERC20"
												},
												"typeName": {
													"id": 174,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 173,
														"name": "IERC20",
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 77,
														"src": "1505:6:2"
													},
													"referencedDeclaration": 77,
													"src": "1505:6:2",
													"typeDescriptions": {
														"typeIdentifier": "t_contract$_IERC20_$77",
														"typeString": "contract IERC20"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 177,
												"mutability": "mutable",
												"name": "spender",
												"nameLocation": "1535:7:2",
												"nodeType": "VariableDeclaration",
												"scope": 215,
												"src": "1527:15:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 176,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1527:7:2",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 179,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "1560:5:2",
												"nodeType": "VariableDeclaration",
												"scope": 215,
												"src": "1552:13:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 178,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1552:7:2",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1495:76:2"
									},
									"returnParameters": {
										"id": 181,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1581:0:2"
									},
									"scope": 394,
									"src": "1475:603:2",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 250,
										"nodeType": "Block",
										"src": "2200:194:2",
										"statements": [
											{
												"assignments": [
													226
												],
												"declarations": [
													{
														"constant": false,
														"id": 226,
														"mutability": "mutable",
														"name": "newAllowance",
														"nameLocation": "2218:12:2",
														"nodeType": "VariableDeclaration",
														"scope": 250,
														"src": "2210:20:2",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 225,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "2210:7:2",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 237,
												"initialValue": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 236,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"arguments": [
															{
																"arguments": [
																	{
																		"id": 231,
																		"name": "this",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4294967268,
																		"src": "2257:4:2",
																		"typeDescriptions": {
																			"typeIdentifier": "t_contract$_SafeERC20_$394",
																			"typeString": "library SafeERC20"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_contract$_SafeERC20_$394",
																			"typeString": "library SafeERC20"
																		}
																	],
																	"id": 230,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "2249:7:2",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_address_$",
																		"typeString": "type(address)"
																	},
																	"typeName": {
																		"id": 229,
																		"name": "address",
																		"nodeType": "ElementaryTypeName",
																		"src": "2249:7:2",
																		"typeDescriptions": {}
																	}
																},
																"id": 232,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "typeConversion",
																"lValueRequested": false,
																"names": [],
																"nodeType": "FunctionCall",
																"src": "2249:13:2",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															{
																"id": 233,
																"name": "spender",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 220,
																"src": "2264:7:2",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																},
																{
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															],
															"expression": {
																"id": 227,
																"name": "token",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 218,
																"src": "2233:5:2",
																"typeDescriptions": {
																	"typeIdentifier": "t_contract$_IERC20_$77",
																	"typeString": "contract IERC20"
																}
															},
															"id": 228,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "allowance",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 54,
															"src": "2233:15:2",
															"typeDescriptions": {
																"typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$",
																"typeString": "function (address,address) view external returns (uint256)"
															}
														},
														"id": 234,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "functionCall",
														"lValueRequested": false,
														"names": [],
														"nodeType": "FunctionCall",
														"src": "2233:39:2",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "+",
													"rightExpression": {
														"id": 235,
														"name": "value",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 222,
														"src": "2275:5:2",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "2233:47:2",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "2210:70:2"
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 239,
															"name": "token",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 218,
															"src": "2310:5:2",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_IERC20_$77",
																"typeString": "contract IERC20"
															}
														},
														{
															"arguments": [
																{
																	"expression": {
																		"expression": {
																			"id": 242,
																			"name": "token",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 218,
																			"src": "2340:5:2",
																			"typeDescriptions": {
																				"typeIdentifier": "t_contract$_IERC20_$77",
																				"typeString": "contract IERC20"
																			}
																		},
																		"id": 243,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberName": "approve",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 64,
																		"src": "2340:13:2",
																		"typeDescriptions": {
																			"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
																			"typeString": "function (address,uint256) external returns (bool)"
																		}
																	},
																	"id": 244,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberName": "selector",
																	"nodeType": "MemberAccess",
																	"src": "2340:22:2",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes4",
																		"typeString": "bytes4"
																	}
																},
																{
																	"id": 245,
																	"name": "spender",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 220,
																	"src": "2364:7:2",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 246,
																	"name": "newAllowance",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 226,
																	"src": "2373:12:2",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_bytes4",
																		"typeString": "bytes4"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 240,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "2317:3:2",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 241,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSelector",
																"nodeType": "MemberAccess",
																"src": "2317:22:2",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (bytes4) pure returns (bytes memory)"
																}
															},
															"id": 247,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "2317:69:2",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_contract$_IERC20_$77",
																"typeString": "contract IERC20"
															},
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 238,
														"name": "_callOptionalReturn",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 393,
														"src": "2290:19:2",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$77_$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (contract IERC20,bytes memory)"
														}
													},
													"id": 248,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "2290:97:2",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 249,
												"nodeType": "ExpressionStatement",
												"src": "2290:97:2"
											}
										]
									},
									"id": 251,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "safeIncreaseAllowance",
									"nameLocation": "2093:21:2",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 223,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 218,
												"mutability": "mutable",
												"name": "token",
												"nameLocation": "2131:5:2",
												"nodeType": "VariableDeclaration",
												"scope": 251,
												"src": "2124:12:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_contract$_IERC20_$77",
													"typeString": "contract IERC20"
												},
												"typeName": {
													"id": 217,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 216,
														"name": "IERC20",
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 77,
														"src": "2124:6:2"
													},
													"referencedDeclaration": 77,
													"src": "2124:6:2",
													"typeDescriptions": {
														"typeIdentifier": "t_contract$_IERC20_$77",
														"typeString": "contract IERC20"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 220,
												"mutability": "mutable",
												"name": "spender",
												"nameLocation": "2154:7:2",
												"nodeType": "VariableDeclaration",
												"scope": 251,
												"src": "2146:15:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 219,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2146:7:2",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 222,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "2179:5:2",
												"nodeType": "VariableDeclaration",
												"scope": 251,
												"src": "2171:13:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 221,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2171:7:2",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2114:76:2"
									},
									"returnParameters": {
										"id": 224,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2200:0:2"
									},
									"scope": 394,
									"src": "2084:310:2",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 298,
										"nodeType": "Block",
										"src": "2516:370:2",
										"statements": [
											{
												"id": 297,
												"nodeType": "UncheckedBlock",
												"src": "2526:354:2",
												"statements": [
													{
														"assignments": [
															262
														],
														"declarations": [
															{
																"constant": false,
																"id": 262,
																"mutability": "mutable",
																"name": "oldAllowance",
																"nameLocation": "2558:12:2",
																"nodeType": "VariableDeclaration",
																"scope": 297,
																"src": "2550:20:2",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 261,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "2550:7:2",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 271,
														"initialValue": {
															"arguments": [
																{
																	"arguments": [
																		{
																			"id": 267,
																			"name": "this",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4294967268,
																			"src": "2597:4:2",
																			"typeDescriptions": {
																				"typeIdentifier": "t_contract$_SafeERC20_$394",
																				"typeString": "library SafeERC20"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_contract$_SafeERC20_$394",
																				"typeString": "library SafeERC20"
																			}
																		],
																		"id": 266,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "2589:7:2",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_address_$",
																			"typeString": "type(address)"
																		},
																		"typeName": {
																			"id": 265,
																			"name": "address",
																			"nodeType": "ElementaryTypeName",
																			"src": "2589:7:2",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 268,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "2589:13:2",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 269,
																	"name": "spender",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 256,
																	"src": "2604:7:2",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 263,
																	"name": "token",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 254,
																	"src": "2573:5:2",
																	"typeDescriptions": {
																		"typeIdentifier": "t_contract$_IERC20_$77",
																		"typeString": "contract IERC20"
																	}
																},
																"id": 264,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"memberName": "allowance",
																"nodeType": "MemberAccess",
																"referencedDeclaration": 54,
																"src": "2573:15:2",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$",
																	"typeString": "function (address,address) view external returns (uint256)"
																}
															},
															"id": 270,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "2573:39:2",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "2550:62:2"
													},
													{
														"expression": {
															"arguments": [
																{
																	"commonType": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"id": 275,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"id": 273,
																		"name": "oldAllowance",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 262,
																		"src": "2634:12:2",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": ">=",
																	"rightExpression": {
																		"id": 274,
																		"name": "value",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 258,
																		"src": "2650:5:2",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"src": "2634:21:2",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"hexValue": "5361666545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f",
																	"id": 276,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "2657:43:2",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a",
																		"typeString": "literal_string \"SafeERC20: decreased allowance below zero\""
																	},
																	"value": "SafeERC20: decreased allowance below zero"
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a",
																		"typeString": "literal_string \"SafeERC20: decreased allowance below zero\""
																	}
																],
																"id": 272,
																"name": "require",
																"nodeType": "Identifier",
																"overloadedDeclarations": [
																	4294967278,
																	4294967278
																],
																"referencedDeclaration": 4294967278,
																"src": "2626:7:2",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
																	"typeString": "function (bool,string memory) pure"
																}
															},
															"id": 277,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "2626:75:2",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_tuple$__$",
																"typeString": "tuple()"
															}
														},
														"id": 278,
														"nodeType": "ExpressionStatement",
														"src": "2626:75:2"
													},
													{
														"assignments": [
															280
														],
														"declarations": [
															{
																"constant": false,
																"id": 280,
																"mutability": "mutable",
																"name": "newAllowance",
																"nameLocation": "2723:12:2",
																"nodeType": "VariableDeclaration",
																"scope": 297,
																"src": "2715:20:2",
																"stateVariable": false,
																"storageLocation": "default",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"typeName": {
																	"id": 279,
																	"name": "uint256",
																	"nodeType": "ElementaryTypeName",
																	"src": "2715:7:2",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"visibility": "internal"
															}
														],
														"id": 284,
														"initialValue": {
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 283,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 281,
																"name": "oldAllowance",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 262,
																"src": "2738:12:2",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "-",
															"rightExpression": {
																"id": 282,
																"name": "value",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 258,
																"src": "2753:5:2",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "2738:20:2",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "VariableDeclarationStatement",
														"src": "2715:43:2"
													},
													{
														"expression": {
															"arguments": [
																{
																	"id": 286,
																	"name": "token",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 254,
																	"src": "2792:5:2",
																	"typeDescriptions": {
																		"typeIdentifier": "t_contract$_IERC20_$77",
																		"typeString": "contract IERC20"
																	}
																},
																{
																	"arguments": [
																		{
																			"expression": {
																				"expression": {
																					"id": 289,
																					"name": "token",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 254,
																					"src": "2822:5:2",
																					"typeDescriptions": {
																						"typeIdentifier": "t_contract$_IERC20_$77",
																						"typeString": "contract IERC20"
																					}
																				},
																				"id": 290,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"memberName": "approve",
																				"nodeType": "MemberAccess",
																				"referencedDeclaration": 64,
																				"src": "2822:13:2",
																				"typeDescriptions": {
																					"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
																					"typeString": "function (address,uint256) external returns (bool)"
																				}
																			},
																			"id": 291,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"memberName": "selector",
																			"nodeType": "MemberAccess",
																			"src": "2822:22:2",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes4",
																				"typeString": "bytes4"
																			}
																		},
																		{
																			"id": 292,
																			"name": "spender",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 256,
																			"src": "2846:7:2",
																			"typeDescriptions": {
																				"typeIdentifier": "t_address",
																				"typeString": "address"
																			}
																		},
																		{
																			"id": 293,
																			"name": "newAllowance",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 280,
																			"src": "2855:12:2",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_bytes4",
																				"typeString": "bytes4"
																			},
																			{
																				"typeIdentifier": "t_address",
																				"typeString": "address"
																			},
																			{
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		],
																		"expression": {
																			"id": 287,
																			"name": "abi",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4294967295,
																			"src": "2799:3:2",
																			"typeDescriptions": {
																				"typeIdentifier": "t_magic_abi",
																				"typeString": "abi"
																			}
																		},
																		"id": 288,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"memberName": "encodeWithSelector",
																		"nodeType": "MemberAccess",
																		"src": "2799:22:2",
																		"typeDescriptions": {
																			"typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
																			"typeString": "function (bytes4) pure returns (bytes memory)"
																		}
																	},
																	"id": 294,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "functionCall",
																	"lValueRequested": false,
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "2799:69:2",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes_memory_ptr",
																		"typeString": "bytes memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_contract$_IERC20_$77",
																		"typeString": "contract IERC20"
																	},
																	{
																		"typeIdentifier": "t_bytes_memory_ptr",
																		"typeString": "bytes memory"
																	}
																],
																"id": 285,
																"name": "_callOptionalReturn",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 393,
																"src": "2772:19:2",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$77_$_t_bytes_memory_ptr_$returns$__$",
																	"typeString": "function (contract IERC20,bytes memory)"
																}
															},
															"id": 295,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "2772:97:2",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_tuple$__$",
																"typeString": "tuple()"
															}
														},
														"id": 296,
														"nodeType": "ExpressionStatement",
														"src": "2772:97:2"
													}
												]
											}
										]
									},
									"id": 299,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "safeDecreaseAllowance",
									"nameLocation": "2409:21:2",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 259,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 254,
												"mutability": "mutable",
												"name": "token",
												"nameLocation": "2447:5:2",
												"nodeType": "VariableDeclaration",
												"scope": 299,
												"src": "2440:12:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_contract$_IERC20_$77",
													"typeString": "contract IERC20"
												},
												"typeName": {
													"id": 253,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 252,
														"name": "IERC20",
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 77,
														"src": "2440:6:2"
													},
													"referencedDeclaration": 77,
													"src": "2440:6:2",
													"typeDescriptions": {
														"typeIdentifier": "t_contract$_IERC20_$77",
														"typeString": "contract IERC20"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 256,
												"mutability": "mutable",
												"name": "spender",
												"nameLocation": "2470:7:2",
												"nodeType": "VariableDeclaration",
												"scope": 299,
												"src": "2462:15:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 255,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2462:7:2",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 258,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "2495:5:2",
												"nodeType": "VariableDeclaration",
												"scope": 299,
												"src": "2487:13:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 257,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2487:7:2",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2430:76:2"
									},
									"returnParameters": {
										"id": 260,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2516:0:2"
									},
									"scope": 394,
									"src": "2400:486:2",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 354,
										"nodeType": "Block",
										"src": "3107:257:2",
										"statements": [
											{
												"assignments": [
													320
												],
												"declarations": [
													{
														"constant": false,
														"id": 320,
														"mutability": "mutable",
														"name": "nonceBefore",
														"nameLocation": "3125:11:2",
														"nodeType": "VariableDeclaration",
														"scope": 354,
														"src": "3117:19:2",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 319,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "3117:7:2",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 325,
												"initialValue": {
													"arguments": [
														{
															"id": 323,
															"name": "owner",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 304,
															"src": "3152:5:2",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														],
														"expression": {
															"id": 321,
															"name": "token",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 302,
															"src": "3139:5:2",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_IERC20Permit_$113",
																"typeString": "contract IERC20Permit"
															}
														},
														"id": 322,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "nonces",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 106,
														"src": "3139:12:2",
														"typeDescriptions": {
															"typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
															"typeString": "function (address) view external returns (uint256)"
														}
													},
													"id": 324,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3139:19:2",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "3117:41:2"
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 329,
															"name": "owner",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 304,
															"src": "3181:5:2",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 330,
															"name": "spender",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 306,
															"src": "3188:7:2",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 331,
															"name": "value",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 308,
															"src": "3197:5:2",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"id": 332,
															"name": "deadline",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 310,
															"src": "3204:8:2",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"id": 333,
															"name": "v",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 312,
															"src": "3214:1:2",
															"typeDescriptions": {
																"typeIdentifier": "t_uint8",
																"typeString": "uint8"
															}
														},
														{
															"id": 334,
															"name": "r",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 314,
															"src": "3217:1:2",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															}
														},
														{
															"id": 335,
															"name": "s",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 316,
															"src": "3220:1:2",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_uint8",
																"typeString": "uint8"
															},
															{
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															},
															{
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															}
														],
														"expression": {
															"id": 326,
															"name": "token",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 302,
															"src": "3168:5:2",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_IERC20Permit_$113",
																"typeString": "contract IERC20Permit"
															}
														},
														"id": 328,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "permit",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 98,
														"src": "3168:12:2",
														"typeDescriptions": {
															"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$",
															"typeString": "function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"
														}
													},
													"id": 336,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3168:54:2",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 337,
												"nodeType": "ExpressionStatement",
												"src": "3168:54:2"
											},
											{
												"assignments": [
													339
												],
												"declarations": [
													{
														"constant": false,
														"id": 339,
														"mutability": "mutable",
														"name": "nonceAfter",
														"nameLocation": "3240:10:2",
														"nodeType": "VariableDeclaration",
														"scope": 354,
														"src": "3232:18:2",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 338,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "3232:7:2",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 344,
												"initialValue": {
													"arguments": [
														{
															"id": 342,
															"name": "owner",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 304,
															"src": "3266:5:2",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														],
														"expression": {
															"id": 340,
															"name": "token",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 302,
															"src": "3253:5:2",
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_IERC20Permit_$113",
																"typeString": "contract IERC20Permit"
															}
														},
														"id": 341,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "nonces",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 106,
														"src": "3253:12:2",
														"typeDescriptions": {
															"typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
															"typeString": "function (address) view external returns (uint256)"
														}
													},
													"id": 343,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3253:19:2",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "3232:40:2"
											},
											{
												"expression": {
													"arguments": [
														{
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 350,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 346,
																"name": "nonceAfter",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 339,
																"src": "3290:10:2",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "==",
															"rightExpression": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 349,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 347,
																	"name": "nonceBefore",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 320,
																	"src": "3304:11:2",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "+",
																"rightExpression": {
																	"hexValue": "31",
																	"id": 348,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "3318:1:2",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_1_by_1",
																		"typeString": "int_const 1"
																	},
																	"value": "1"
																},
																"src": "3304:15:2",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "3290:29:2",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "5361666545524332303a207065726d697420646964206e6f742073756363656564",
															"id": 351,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3321:35:2",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d",
																"typeString": "literal_string \"SafeERC20: permit did not succeed\""
															},
															"value": "SafeERC20: permit did not succeed"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															{
																"typeIdentifier": "t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d",
																"typeString": "literal_string \"SafeERC20: permit did not succeed\""
															}
														],
														"id": 345,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "3282:7:2",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 352,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3282:75:2",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 353,
												"nodeType": "ExpressionStatement",
												"src": "3282:75:2"
											}
										]
									},
									"id": 355,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "safePermit",
									"nameLocation": "2901:10:2",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 317,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 302,
												"mutability": "mutable",
												"name": "token",
												"nameLocation": "2934:5:2",
												"nodeType": "VariableDeclaration",
												"scope": 355,
												"src": "2921:18:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_contract$_IERC20Permit_$113",
													"typeString": "contract IERC20Permit"
												},
												"typeName": {
													"id": 301,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 300,
														"name": "IERC20Permit",
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 113,
														"src": "2921:12:2"
													},
													"referencedDeclaration": 113,
													"src": "2921:12:2",
													"typeDescriptions": {
														"typeIdentifier": "t_contract$_IERC20Permit_$113",
														"typeString": "contract IERC20Permit"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 304,
												"mutability": "mutable",
												"name": "owner",
												"nameLocation": "2957:5:2",
												"nodeType": "VariableDeclaration",
												"scope": 355,
												"src": "2949:13:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 303,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2949:7:2",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 306,
												"mutability": "mutable",
												"name": "spender",
												"nameLocation": "2980:7:2",
												"nodeType": "VariableDeclaration",
												"scope": 355,
												"src": "2972:15:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 305,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2972:7:2",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 308,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "3005:5:2",
												"nodeType": "VariableDeclaration",
												"scope": 355,
												"src": "2997:13:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 307,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2997:7:2",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 310,
												"mutability": "mutable",
												"name": "deadline",
												"nameLocation": "3028:8:2",
												"nodeType": "VariableDeclaration",
												"scope": 355,
												"src": "3020:16:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 309,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "3020:7:2",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 312,
												"mutability": "mutable",
												"name": "v",
												"nameLocation": "3052:1:2",
												"nodeType": "VariableDeclaration",
												"scope": 355,
												"src": "3046:7:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint8",
													"typeString": "uint8"
												},
												"typeName": {
													"id": 311,
													"name": "uint8",
													"nodeType": "ElementaryTypeName",
													"src": "3046:5:2",
													"typeDescriptions": {
														"typeIdentifier": "t_uint8",
														"typeString": "uint8"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 314,
												"mutability": "mutable",
												"name": "r",
												"nameLocation": "3071:1:2",
												"nodeType": "VariableDeclaration",
												"scope": 355,
												"src": "3063:9:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 313,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "3063:7:2",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 316,
												"mutability": "mutable",
												"name": "s",
												"nameLocation": "3090:1:2",
												"nodeType": "VariableDeclaration",
												"scope": 355,
												"src": "3082:9:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 315,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "3082:7:2",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2911:186:2"
									},
									"returnParameters": {
										"id": 318,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "3107:0:2"
									},
									"scope": 394,
									"src": "2892:472:2",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 392,
										"nodeType": "Block",
										"src": "3817:636:2",
										"statements": [
											{
												"assignments": [
													365
												],
												"declarations": [
													{
														"constant": false,
														"id": 365,
														"mutability": "mutable",
														"name": "returndata",
														"nameLocation": "4179:10:2",
														"nodeType": "VariableDeclaration",
														"scope": 392,
														"src": "4166:23:2",
														"stateVariable": false,
														"storageLocation": "memory",
														"typeDescriptions": {
															"typeIdentifier": "t_bytes_memory_ptr",
															"typeString": "bytes"
														},
														"typeName": {
															"id": 364,
															"name": "bytes",
															"nodeType": "ElementaryTypeName",
															"src": "4166:5:2",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_storage_ptr",
																"typeString": "bytes"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 374,
												"initialValue": {
													"arguments": [
														{
															"id": 371,
															"name": "data",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 361,
															"src": "4220:4:2",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														},
														{
															"hexValue": "5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564",
															"id": 372,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "4226:34:2",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b",
																"typeString": "literal_string \"SafeERC20: low-level call failed\""
															},
															"value": "SafeERC20: low-level call failed"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															},
															{
																"typeIdentifier": "t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b",
																"typeString": "literal_string \"SafeERC20: low-level call failed\""
															}
														],
														"expression": {
															"arguments": [
																{
																	"id": 368,
																	"name": "token",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 359,
																	"src": "4200:5:2",
																	"typeDescriptions": {
																		"typeIdentifier": "t_contract$_IERC20_$77",
																		"typeString": "contract IERC20"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_contract$_IERC20_$77",
																		"typeString": "contract IERC20"
																	}
																],
																"id": 367,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "4192:7:2",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_address_$",
																	"typeString": "type(address)"
																},
																"typeName": {
																	"id": 366,
																	"name": "address",
																	"nodeType": "ElementaryTypeName",
																	"src": "4192:7:2",
																	"typeDescriptions": {}
																}
															},
															"id": 369,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "4192:14:2",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"id": 370,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "functionCall",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 483,
														"src": "4192:27:2",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$",
															"typeString": "function (address,bytes memory,string memory) returns (bytes memory)"
														}
													},
													"id": 373,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4192:69:2",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_memory_ptr",
														"typeString": "bytes memory"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "4166:95:2"
											},
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 378,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"expression": {
															"id": 375,
															"name": "returndata",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 365,
															"src": "4275:10:2",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														},
														"id": 376,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "length",
														"nodeType": "MemberAccess",
														"src": "4275:17:2",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": ">",
													"rightExpression": {
														"hexValue": "30",
														"id": 377,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "number",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "4295:1:2",
														"typeDescriptions": {
															"typeIdentifier": "t_rational_0_by_1",
															"typeString": "int_const 0"
														},
														"value": "0"
													},
													"src": "4275:21:2",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 391,
												"nodeType": "IfStatement",
												"src": "4271:176:2",
												"trueBody": {
													"id": 390,
													"nodeType": "Block",
													"src": "4298:149:2",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"id": 382,
																				"name": "returndata",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 365,
																				"src": "4370:10:2",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bytes_memory_ptr",
																					"typeString": "bytes memory"
																				}
																			},
																			{
																				"components": [
																					{
																						"id": 384,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": true,
																						"lValueRequested": false,
																						"nodeType": "ElementaryTypeNameExpression",
																						"src": "4383:4:2",
																						"typeDescriptions": {
																							"typeIdentifier": "t_type$_t_bool_$",
																							"typeString": "type(bool)"
																						},
																						"typeName": {
																							"id": 383,
																							"name": "bool",
																							"nodeType": "ElementaryTypeName",
																							"src": "4383:4:2",
																							"typeDescriptions": {}
																						}
																					}
																				],
																				"id": 385,
																				"isConstant": false,
																				"isInlineArray": false,
																				"isLValue": false,
																				"isPure": true,
																				"lValueRequested": false,
																				"nodeType": "TupleExpression",
																				"src": "4382:6:2",
																				"typeDescriptions": {
																					"typeIdentifier": "t_type$_t_bool_$",
																					"typeString": "type(bool)"
																				}
																			}
																		],
																		"expression": {
																			"argumentTypes": [
																				{
																					"typeIdentifier": "t_bytes_memory_ptr",
																					"typeString": "bytes memory"
																				},
																				{
																					"typeIdentifier": "t_type$_t_bool_$",
																					"typeString": "type(bool)"
																				}
																			],
																			"expression": {
																				"id": 380,
																				"name": "abi",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 4294967295,
																				"src": "4359:3:2",
																				"typeDescriptions": {
																					"typeIdentifier": "t_magic_abi",
																					"typeString": "abi"
																				}
																			},
																			"id": 381,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"memberName": "decode",
																			"nodeType": "MemberAccess",
																			"src": "4359:10:2",
																			"typeDescriptions": {
																				"typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
																				"typeString": "function () pure"
																			}
																		},
																		"id": 386,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"kind": "functionCall",
																		"lValueRequested": false,
																		"names": [],
																		"nodeType": "FunctionCall",
																		"src": "4359:30:2",
																		"tryCall": false,
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	{
																		"hexValue": "5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564",
																		"id": 387,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "string",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "4391:44:2",
																		"typeDescriptions": {
																			"typeIdentifier": "t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd",
																			"typeString": "literal_string \"SafeERC20: ERC20 operation did not succeed\""
																		},
																		"value": "SafeERC20: ERC20 operation did not succeed"
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		},
																		{
																			"typeIdentifier": "t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd",
																			"typeString": "literal_string \"SafeERC20: ERC20 operation did not succeed\""
																		}
																	],
																	"id": 379,
																	"name": "require",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [
																		4294967278,
																		4294967278
																	],
																	"referencedDeclaration": 4294967278,
																	"src": "4351:7:2",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
																		"typeString": "function (bool,string memory) pure"
																	}
																},
																"id": 388,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"names": [],
																"nodeType": "FunctionCall",
																"src": "4351:85:2",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 389,
															"nodeType": "ExpressionStatement",
															"src": "4351:85:2"
														}
													]
												}
											}
										]
									},
									"documentation": {
										"id": 356,
										"nodeType": "StructuredDocumentation",
										"src": "3370:372:2",
										"text": " @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)."
									},
									"id": 393,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_callOptionalReturn",
									"nameLocation": "3756:19:2",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 362,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 359,
												"mutability": "mutable",
												"name": "token",
												"nameLocation": "3783:5:2",
												"nodeType": "VariableDeclaration",
												"scope": 393,
												"src": "3776:12:2",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_contract$_IERC20_$77",
													"typeString": "contract IERC20"
												},
												"typeName": {
													"id": 358,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 357,
														"name": "IERC20",
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 77,
														"src": "3776:6:2"
													},
													"referencedDeclaration": 77,
													"src": "3776:6:2",
													"typeDescriptions": {
														"typeIdentifier": "t_contract$_IERC20_$77",
														"typeString": "contract IERC20"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 361,
												"mutability": "mutable",
												"name": "data",
												"nameLocation": "3803:4:2",
												"nodeType": "VariableDeclaration",
												"scope": 393,
												"src": "3790:17:2",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 360,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "3790:5:2",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3775:33:2"
									},
									"returnParameters": {
										"id": 363,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "3817:0:2"
									},
									"scope": 394,
									"src": "3747:706:2",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "private"
								}
							],
							"scope": 395,
							"src": "707:3748:2",
							"usedErrors": []
						}
					],
					"src": "115:4341:2"
				},
				"id": 2
			},
			"@openzeppelin/contracts/utils/Address.sol": {
				"ast": {
					"absolutePath": "@openzeppelin/contracts/utils/Address.sol",
					"exportedSymbols": {
						"Address": [
							689
						]
					},
					"id": 690,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 396,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".1"
							],
							"nodeType": "PragmaDirective",
							"src": "101:23:3"
						},
						{
							"abstract": false,
							"baseContracts": [],
							"contractDependencies": [],
							"contractKind": "library",
							"documentation": {
								"id": 397,
								"nodeType": "StructuredDocumentation",
								"src": "126:67:3",
								"text": " @dev Collection of functions related to the address type"
							},
							"fullyImplemented": true,
							"id": 689,
							"linearizedBaseContracts": [
								689
							],
							"name": "Address",
							"nameLocation": "202:7:3",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"body": {
										"id": 411,
										"nodeType": "Block",
										"src": "1241:254:3",
										"statements": [
											{
												"expression": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 409,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"expression": {
															"expression": {
																"id": 405,
																"name": "account",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 400,
																"src": "1465:7:3",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"id": 406,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "code",
															"nodeType": "MemberAccess",
															"src": "1465:12:3",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														},
														"id": 407,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "length",
														"nodeType": "MemberAccess",
														"src": "1465:19:3",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": ">",
													"rightExpression": {
														"hexValue": "30",
														"id": 408,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "number",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "1487:1:3",
														"typeDescriptions": {
															"typeIdentifier": "t_rational_0_by_1",
															"typeString": "int_const 0"
														},
														"value": "0"
													},
													"src": "1465:23:3",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"functionReturnParameters": 404,
												"id": 410,
												"nodeType": "Return",
												"src": "1458:30:3"
											}
										]
									},
									"documentation": {
										"id": 398,
										"nodeType": "StructuredDocumentation",
										"src": "216:954:3",
										"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": 412,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "isContract",
									"nameLocation": "1184:10:3",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 401,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 400,
												"mutability": "mutable",
												"name": "account",
												"nameLocation": "1203:7:3",
												"nodeType": "VariableDeclaration",
												"scope": 412,
												"src": "1195:15:3",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 399,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1195:7:3",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1194:17:3"
									},
									"returnParameters": {
										"id": 404,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 403,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 412,
												"src": "1235:4:3",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 402,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "1235:4:3",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1234:6:3"
									},
									"scope": 689,
									"src": "1175:320:3",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 445,
										"nodeType": "Block",
										"src": "2483:241:3",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 427,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"expression": {
																	"arguments": [
																		{
																			"id": 423,
																			"name": "this",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4294967268,
																			"src": "2509:4:3",
																			"typeDescriptions": {
																				"typeIdentifier": "t_contract$_Address_$689",
																				"typeString": "library Address"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_contract$_Address_$689",
																				"typeString": "library Address"
																			}
																		],
																		"id": 422,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "2501:7:3",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_address_$",
																			"typeString": "type(address)"
																		},
																		"typeName": {
																			"id": 421,
																			"name": "address",
																			"nodeType": "ElementaryTypeName",
																			"src": "2501:7:3",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 424,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "2501:13:3",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																"id": 425,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"memberName": "balance",
																"nodeType": "MemberAccess",
																"src": "2501:21:3",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">=",
															"rightExpression": {
																"id": 426,
																"name": "amount",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 417,
																"src": "2526:6:3",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "2501:31:3",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365",
															"id": 428,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "2534:31:3",
															"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": 420,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "2493:7:3",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 429,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "2493:73:3",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 430,
												"nodeType": "ExpressionStatement",
												"src": "2493:73:3"
											},
											{
												"assignments": [
													432,
													null
												],
												"declarations": [
													{
														"constant": false,
														"id": 432,
														"mutability": "mutable",
														"name": "success",
														"nameLocation": "2583:7:3",
														"nodeType": "VariableDeclaration",
														"scope": 445,
														"src": "2578:12:3",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														},
														"typeName": {
															"id": 431,
															"name": "bool",
															"nodeType": "ElementaryTypeName",
															"src": "2578:4:3",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"visibility": "internal"
													},
													null
												],
												"id": 439,
												"initialValue": {
													"arguments": [
														{
															"hexValue": "",
															"id": 437,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "2626:2:3",
															"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": 433,
																"name": "recipient",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 415,
																"src": "2596:9:3",
																"typeDescriptions": {
																	"typeIdentifier": "t_address_payable",
																	"typeString": "address payable"
																}
															},
															"id": 434,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "call",
															"nodeType": "MemberAccess",
															"src": "2596:14:3",
															"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": 436,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"names": [
															"value"
														],
														"nodeType": "FunctionCallOptions",
														"options": [
															{
																"id": 435,
																"name": "amount",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 417,
																"src": "2618:6:3",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															}
														],
														"src": "2596:29:3",
														"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": 438,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "2596:33:3",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
														"typeString": "tuple(bool,bytes memory)"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "2577:52:3"
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 441,
															"name": "success",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 432,
															"src": "2647:7:3",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564",
															"id": 442,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "2656:60:3",
															"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": 440,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "2639:7:3",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 443,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "2639:78:3",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 444,
												"nodeType": "ExpressionStatement",
												"src": "2639:78:3"
											}
										]
									},
									"documentation": {
										"id": 413,
										"nodeType": "StructuredDocumentation",
										"src": "1501:906:3",
										"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": 446,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "sendValue",
									"nameLocation": "2421:9:3",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 418,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 415,
												"mutability": "mutable",
												"name": "recipient",
												"nameLocation": "2447:9:3",
												"nodeType": "VariableDeclaration",
												"scope": 446,
												"src": "2431:25:3",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address_payable",
													"typeString": "address payable"
												},
												"typeName": {
													"id": 414,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2431:15:3",
													"stateMutability": "payable",
													"typeDescriptions": {
														"typeIdentifier": "t_address_payable",
														"typeString": "address payable"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 417,
												"mutability": "mutable",
												"name": "amount",
												"nameLocation": "2466:6:3",
												"nodeType": "VariableDeclaration",
												"scope": 446,
												"src": "2458:14:3",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 416,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "2458:7:3",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2430:43:3"
									},
									"returnParameters": {
										"id": 419,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2483:0:3"
									},
									"scope": 689,
									"src": "2412:312:3",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 462,
										"nodeType": "Block",
										"src": "3555:84:3",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"id": 457,
															"name": "target",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 449,
															"src": "3585:6:3",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 458,
															"name": "data",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 451,
															"src": "3593:4:3",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														},
														{
															"hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564",
															"id": 459,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3599:32:3",
															"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": 456,
														"name": "functionCall",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															463,
															483
														],
														"referencedDeclaration": 483,
														"src": "3572:12:3",
														"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": 460,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3572:60:3",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_memory_ptr",
														"typeString": "bytes memory"
													}
												},
												"functionReturnParameters": 455,
												"id": 461,
												"nodeType": "Return",
												"src": "3565:67:3"
											}
										]
									},
									"documentation": {
										"id": 447,
										"nodeType": "StructuredDocumentation",
										"src": "2730:731:3",
										"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": 463,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "functionCall",
									"nameLocation": "3475:12:3",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 452,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 449,
												"mutability": "mutable",
												"name": "target",
												"nameLocation": "3496:6:3",
												"nodeType": "VariableDeclaration",
												"scope": 463,
												"src": "3488:14:3",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 448,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3488:7:3",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 451,
												"mutability": "mutable",
												"name": "data",
												"nameLocation": "3517:4:3",
												"nodeType": "VariableDeclaration",
												"scope": 463,
												"src": "3504:17:3",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 450,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "3504:5:3",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3487:35:3"
									},
									"returnParameters": {
										"id": 455,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 454,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 463,
												"src": "3541:12:3",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 453,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "3541:5:3",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3540:14:3"
									},
									"scope": 689,
									"src": "3466:173:3",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 482,
										"nodeType": "Block",
										"src": "4008:76:3",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"id": 476,
															"name": "target",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 466,
															"src": "4047:6:3",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 477,
															"name": "data",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 468,
															"src": "4055:4:3",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														},
														{
															"hexValue": "30",
															"id": 478,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "4061:1:3",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_0_by_1",
																"typeString": "int_const 0"
															},
															"value": "0"
														},
														{
															"id": 479,
															"name": "errorMessage",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 470,
															"src": "4064:12:3",
															"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": 475,
														"name": "functionCallWithValue",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															503,
															553
														],
														"referencedDeclaration": 553,
														"src": "4025:21:3",
														"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": 480,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4025:52:3",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_memory_ptr",
														"typeString": "bytes memory"
													}
												},
												"functionReturnParameters": 474,
												"id": 481,
												"nodeType": "Return",
												"src": "4018:59:3"
											}
										]
									},
									"documentation": {
										"id": 464,
										"nodeType": "StructuredDocumentation",
										"src": "3645:211:3",
										"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": 483,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "functionCall",
									"nameLocation": "3870:12:3",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 471,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 466,
												"mutability": "mutable",
												"name": "target",
												"nameLocation": "3900:6:3",
												"nodeType": "VariableDeclaration",
												"scope": 483,
												"src": "3892:14:3",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 465,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3892:7:3",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 468,
												"mutability": "mutable",
												"name": "data",
												"nameLocation": "3929:4:3",
												"nodeType": "VariableDeclaration",
												"scope": 483,
												"src": "3916:17:3",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 467,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "3916:5:3",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 470,
												"mutability": "mutable",
												"name": "errorMessage",
												"nameLocation": "3957:12:3",
												"nodeType": "VariableDeclaration",
												"scope": 483,
												"src": "3943:26:3",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 469,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "3943:6:3",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3882:93:3"
									},
									"returnParameters": {
										"id": 474,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 473,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 483,
												"src": "3994:12:3",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 472,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "3994:5:3",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3993:14:3"
									},
									"scope": 689,
									"src": "3861:223:3",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 502,
										"nodeType": "Block",
										"src": "4589:111:3",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"id": 496,
															"name": "target",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 486,
															"src": "4628:6:3",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 497,
															"name": "data",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 488,
															"src": "4636:4:3",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														},
														{
															"id": 498,
															"name": "value",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 490,
															"src": "4642:5:3",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564",
															"id": 499,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "4649:43:3",
															"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": 495,
														"name": "functionCallWithValue",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															503,
															553
														],
														"referencedDeclaration": 553,
														"src": "4606:21:3",
														"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": 500,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4606:87:3",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_memory_ptr",
														"typeString": "bytes memory"
													}
												},
												"functionReturnParameters": 494,
												"id": 501,
												"nodeType": "Return",
												"src": "4599:94:3"
											}
										]
									},
									"documentation": {
										"id": 484,
										"nodeType": "StructuredDocumentation",
										"src": "4090:351:3",
										"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": 503,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "functionCallWithValue",
									"nameLocation": "4455:21:3",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 491,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 486,
												"mutability": "mutable",
												"name": "target",
												"nameLocation": "4494:6:3",
												"nodeType": "VariableDeclaration",
												"scope": 503,
												"src": "4486:14:3",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 485,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "4486:7:3",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 488,
												"mutability": "mutable",
												"name": "data",
												"nameLocation": "4523:4:3",
												"nodeType": "VariableDeclaration",
												"scope": 503,
												"src": "4510:17:3",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 487,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "4510:5:3",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 490,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "4545:5:3",
												"nodeType": "VariableDeclaration",
												"scope": 503,
												"src": "4537:13:3",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 489,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "4537:7:3",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4476:80:3"
									},
									"returnParameters": {
										"id": 494,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 493,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 503,
												"src": "4575:12:3",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 492,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "4575:5:3",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4574:14:3"
									},
									"scope": 689,
									"src": "4446:254:3",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 552,
										"nodeType": "Block",
										"src": "5127:320:3",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 524,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"expression": {
																	"arguments": [
																		{
																			"id": 520,
																			"name": "this",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4294967268,
																			"src": "5153:4:3",
																			"typeDescriptions": {
																				"typeIdentifier": "t_contract$_Address_$689",
																				"typeString": "library Address"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_contract$_Address_$689",
																				"typeString": "library Address"
																			}
																		],
																		"id": 519,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "5145:7:3",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_address_$",
																			"typeString": "type(address)"
																		},
																		"typeName": {
																			"id": 518,
																			"name": "address",
																			"nodeType": "ElementaryTypeName",
																			"src": "5145:7:3",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 521,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "5145:13:3",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																"id": 522,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"memberName": "balance",
																"nodeType": "MemberAccess",
																"src": "5145:21:3",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">=",
															"rightExpression": {
																"id": 523,
																"name": "value",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 510,
																"src": "5170:5:3",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "5145:30:3",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c",
															"id": 525,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "5177:40:3",
															"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": 517,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "5137:7:3",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 526,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5137:81:3",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 527,
												"nodeType": "ExpressionStatement",
												"src": "5137:81:3"
											},
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"id": 530,
																	"name": "target",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 506,
																	"src": "5247:6:3",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"id": 529,
																"name": "isContract",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 412,
																"src": "5236:10:3",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
																	"typeString": "function (address) view returns (bool)"
																}
															},
															"id": 531,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "5236:18:3",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374",
															"id": 532,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "5256:31:3",
															"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": 528,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "5228:7:3",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 533,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5228:60:3",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 534,
												"nodeType": "ExpressionStatement",
												"src": "5228:60:3"
											},
											{
												"assignments": [
													536,
													538
												],
												"declarations": [
													{
														"constant": false,
														"id": 536,
														"mutability": "mutable",
														"name": "success",
														"nameLocation": "5305:7:3",
														"nodeType": "VariableDeclaration",
														"scope": 552,
														"src": "5300:12:3",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														},
														"typeName": {
															"id": 535,
															"name": "bool",
															"nodeType": "ElementaryTypeName",
															"src": "5300:4:3",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"visibility": "internal"
													},
													{
														"constant": false,
														"id": 538,
														"mutability": "mutable",
														"name": "returndata",
														"nameLocation": "5327:10:3",
														"nodeType": "VariableDeclaration",
														"scope": 552,
														"src": "5314:23:3",
														"stateVariable": false,
														"storageLocation": "memory",
														"typeDescriptions": {
															"typeIdentifier": "t_bytes_memory_ptr",
															"typeString": "bytes"
														},
														"typeName": {
															"id": 537,
															"name": "bytes",
															"nodeType": "ElementaryTypeName",
															"src": "5314:5:3",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_storage_ptr",
																"typeString": "bytes"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 545,
												"initialValue": {
													"arguments": [
														{
															"id": 543,
															"name": "data",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 508,
															"src": "5367:4:3",
															"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": 539,
																"name": "target",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 506,
																"src": "5341:6:3",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"id": 540,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "call",
															"nodeType": "MemberAccess",
															"src": "5341:11:3",
															"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": 542,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"names": [
															"value"
														],
														"nodeType": "FunctionCallOptions",
														"options": [
															{
																"id": 541,
																"name": "value",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 510,
																"src": "5360:5:3",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															}
														],
														"src": "5341:25:3",
														"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": 544,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5341:31:3",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
														"typeString": "tuple(bool,bytes memory)"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "5299:73:3"
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 547,
															"name": "success",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 536,
															"src": "5406:7:3",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"id": 548,
															"name": "returndata",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 538,
															"src": "5415:10:3",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														},
														{
															"id": 549,
															"name": "errorMessage",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 512,
															"src": "5427:12:3",
															"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": 546,
														"name": "verifyCallResult",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 688,
														"src": "5389:16:3",
														"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": 550,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5389:51:3",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_memory_ptr",
														"typeString": "bytes memory"
													}
												},
												"functionReturnParameters": 516,
												"id": 551,
												"nodeType": "Return",
												"src": "5382:58:3"
											}
										]
									},
									"documentation": {
										"id": 504,
										"nodeType": "StructuredDocumentation",
										"src": "4706:237:3",
										"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": 553,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "functionCallWithValue",
									"nameLocation": "4957:21:3",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 513,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 506,
												"mutability": "mutable",
												"name": "target",
												"nameLocation": "4996:6:3",
												"nodeType": "VariableDeclaration",
												"scope": 553,
												"src": "4988:14:3",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 505,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "4988:7:3",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 508,
												"mutability": "mutable",
												"name": "data",
												"nameLocation": "5025:4:3",
												"nodeType": "VariableDeclaration",
												"scope": 553,
												"src": "5012:17:3",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 507,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "5012:5:3",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 510,
												"mutability": "mutable",
												"name": "value",
												"nameLocation": "5047:5:3",
												"nodeType": "VariableDeclaration",
												"scope": 553,
												"src": "5039:13:3",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 509,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "5039:7:3",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 512,
												"mutability": "mutable",
												"name": "errorMessage",
												"nameLocation": "5076:12:3",
												"nodeType": "VariableDeclaration",
												"scope": 553,
												"src": "5062:26:3",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 511,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "5062:6:3",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4978:116:3"
									},
									"returnParameters": {
										"id": 516,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 515,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 553,
												"src": "5113:12:3",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 514,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "5113:5:3",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5112:14:3"
									},
									"scope": 689,
									"src": "4948:499:3",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 569,
										"nodeType": "Block",
										"src": "5724:97:3",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"id": 564,
															"name": "target",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 556,
															"src": "5760:6:3",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 565,
															"name": "data",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 558,
															"src": "5768:4:3",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														},
														{
															"hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564",
															"id": 566,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "5774:39:3",
															"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": 563,
														"name": "functionStaticCall",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															570,
															605
														],
														"referencedDeclaration": 605,
														"src": "5741:18:3",
														"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": 567,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5741:73:3",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_memory_ptr",
														"typeString": "bytes memory"
													}
												},
												"functionReturnParameters": 562,
												"id": 568,
												"nodeType": "Return",
												"src": "5734:80:3"
											}
										]
									},
									"documentation": {
										"id": 554,
										"nodeType": "StructuredDocumentation",
										"src": "5453:166:3",
										"text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"
									},
									"id": 570,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "functionStaticCall",
									"nameLocation": "5633:18:3",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 559,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 556,
												"mutability": "mutable",
												"name": "target",
												"nameLocation": "5660:6:3",
												"nodeType": "VariableDeclaration",
												"scope": 570,
												"src": "5652:14:3",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 555,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "5652:7:3",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 558,
												"mutability": "mutable",
												"name": "data",
												"nameLocation": "5681:4:3",
												"nodeType": "VariableDeclaration",
												"scope": 570,
												"src": "5668:17:3",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 557,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "5668:5:3",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5651:35:3"
									},
									"returnParameters": {
										"id": 562,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 561,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 570,
												"src": "5710:12:3",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 560,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "5710:5:3",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5709:14:3"
									},
									"scope": 689,
									"src": "5624:197:3",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 604,
										"nodeType": "Block",
										"src": "6163:228:3",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"id": 584,
																	"name": "target",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 573,
																	"src": "6192:6:3",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"id": 583,
																"name": "isContract",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 412,
																"src": "6181:10:3",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
																	"typeString": "function (address) view returns (bool)"
																}
															},
															"id": 585,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "6181:18:3",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374",
															"id": 586,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "6201:38:3",
															"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": 582,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "6173:7:3",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 587,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "6173:67:3",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 588,
												"nodeType": "ExpressionStatement",
												"src": "6173:67:3"
											},
											{
												"assignments": [
													590,
													592
												],
												"declarations": [
													{
														"constant": false,
														"id": 590,
														"mutability": "mutable",
														"name": "success",
														"nameLocation": "6257:7:3",
														"nodeType": "VariableDeclaration",
														"scope": 604,
														"src": "6252:12:3",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														},
														"typeName": {
															"id": 589,
															"name": "bool",
															"nodeType": "ElementaryTypeName",
															"src": "6252:4:3",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"visibility": "internal"
													},
													{
														"constant": false,
														"id": 592,
														"mutability": "mutable",
														"name": "returndata",
														"nameLocation": "6279:10:3",
														"nodeType": "VariableDeclaration",
														"scope": 604,
														"src": "6266:23:3",
														"stateVariable": false,
														"storageLocation": "memory",
														"typeDescriptions": {
															"typeIdentifier": "t_bytes_memory_ptr",
															"typeString": "bytes"
														},
														"typeName": {
															"id": 591,
															"name": "bytes",
															"nodeType": "ElementaryTypeName",
															"src": "6266:5:3",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_storage_ptr",
																"typeString": "bytes"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 597,
												"initialValue": {
													"arguments": [
														{
															"id": 595,
															"name": "data",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 575,
															"src": "6311:4:3",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"expression": {
															"id": 593,
															"name": "target",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 573,
															"src": "6293:6:3",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"id": 594,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "staticcall",
														"nodeType": "MemberAccess",
														"src": "6293:17:3",
														"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": 596,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "6293:23:3",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
														"typeString": "tuple(bool,bytes memory)"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "6251:65:3"
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 599,
															"name": "success",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 590,
															"src": "6350:7:3",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"id": 600,
															"name": "returndata",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 592,
															"src": "6359:10:3",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														},
														{
															"id": 601,
															"name": "errorMessage",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 577,
															"src": "6371:12:3",
															"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": 598,
														"name": "verifyCallResult",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 688,
														"src": "6333:16:3",
														"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": 602,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "6333:51:3",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_memory_ptr",
														"typeString": "bytes memory"
													}
												},
												"functionReturnParameters": 581,
												"id": 603,
												"nodeType": "Return",
												"src": "6326:58:3"
											}
										]
									},
									"documentation": {
										"id": 571,
										"nodeType": "StructuredDocumentation",
										"src": "5827:173:3",
										"text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"
									},
									"id": 605,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "functionStaticCall",
									"nameLocation": "6014:18:3",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 578,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 573,
												"mutability": "mutable",
												"name": "target",
												"nameLocation": "6050:6:3",
												"nodeType": "VariableDeclaration",
												"scope": 605,
												"src": "6042:14:3",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 572,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "6042:7:3",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 575,
												"mutability": "mutable",
												"name": "data",
												"nameLocation": "6079:4:3",
												"nodeType": "VariableDeclaration",
												"scope": 605,
												"src": "6066:17:3",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 574,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "6066:5:3",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 577,
												"mutability": "mutable",
												"name": "errorMessage",
												"nameLocation": "6107:12:3",
												"nodeType": "VariableDeclaration",
												"scope": 605,
												"src": "6093:26:3",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 576,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "6093:6:3",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6032:93:3"
									},
									"returnParameters": {
										"id": 581,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 580,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 605,
												"src": "6149:12:3",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 579,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "6149:5:3",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6148:14:3"
									},
									"scope": 689,
									"src": "6005:386:3",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 621,
										"nodeType": "Block",
										"src": "6667:101:3",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"id": 616,
															"name": "target",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 608,
															"src": "6705:6:3",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 617,
															"name": "data",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 610,
															"src": "6713:4:3",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														},
														{
															"hexValue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564",
															"id": 618,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "6719:41:3",
															"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": 615,
														"name": "functionDelegateCall",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															622,
															657
														],
														"referencedDeclaration": 657,
														"src": "6684:20:3",
														"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": 619,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "6684:77:3",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_memory_ptr",
														"typeString": "bytes memory"
													}
												},
												"functionReturnParameters": 614,
												"id": 620,
												"nodeType": "Return",
												"src": "6677:84:3"
											}
										]
									},
									"documentation": {
										"id": 606,
										"nodeType": "StructuredDocumentation",
										"src": "6397:168:3",
										"text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"
									},
									"id": 622,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "functionDelegateCall",
									"nameLocation": "6579:20:3",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 611,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 608,
												"mutability": "mutable",
												"name": "target",
												"nameLocation": "6608:6:3",
												"nodeType": "VariableDeclaration",
												"scope": 622,
												"src": "6600:14:3",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 607,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "6600:7:3",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 610,
												"mutability": "mutable",
												"name": "data",
												"nameLocation": "6629:4:3",
												"nodeType": "VariableDeclaration",
												"scope": 622,
												"src": "6616:17:3",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 609,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "6616:5:3",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6599:35:3"
									},
									"returnParameters": {
										"id": 614,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 613,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 622,
												"src": "6653:12:3",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 612,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "6653:5:3",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6652:14:3"
									},
									"scope": 689,
									"src": "6570:198:3",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 656,
										"nodeType": "Block",
										"src": "7109:232:3",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"id": 636,
																	"name": "target",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 625,
																	"src": "7138:6:3",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"id": 635,
																"name": "isContract",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 412,
																"src": "7127:10:3",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
																	"typeString": "function (address) view returns (bool)"
																}
															},
															"id": 637,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "7127:18:3",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374",
															"id": 638,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "7147:40:3",
															"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": 634,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "7119:7:3",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 639,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "7119:69:3",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 640,
												"nodeType": "ExpressionStatement",
												"src": "7119:69:3"
											},
											{
												"assignments": [
													642,
													644
												],
												"declarations": [
													{
														"constant": false,
														"id": 642,
														"mutability": "mutable",
														"name": "success",
														"nameLocation": "7205:7:3",
														"nodeType": "VariableDeclaration",
														"scope": 656,
														"src": "7200:12:3",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														},
														"typeName": {
															"id": 641,
															"name": "bool",
															"nodeType": "ElementaryTypeName",
															"src": "7200:4:3",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"visibility": "internal"
													},
													{
														"constant": false,
														"id": 644,
														"mutability": "mutable",
														"name": "returndata",
														"nameLocation": "7227:10:3",
														"nodeType": "VariableDeclaration",
														"scope": 656,
														"src": "7214:23:3",
														"stateVariable": false,
														"storageLocation": "memory",
														"typeDescriptions": {
															"typeIdentifier": "t_bytes_memory_ptr",
															"typeString": "bytes"
														},
														"typeName": {
															"id": 643,
															"name": "bytes",
															"nodeType": "ElementaryTypeName",
															"src": "7214:5:3",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_storage_ptr",
																"typeString": "bytes"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 649,
												"initialValue": {
													"arguments": [
														{
															"id": 647,
															"name": "data",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 627,
															"src": "7261:4:3",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"expression": {
															"id": 645,
															"name": "target",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 625,
															"src": "7241:6:3",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"id": 646,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "delegatecall",
														"nodeType": "MemberAccess",
														"src": "7241:19:3",
														"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": 648,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "7241:25:3",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
														"typeString": "tuple(bool,bytes memory)"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "7199:67:3"
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 651,
															"name": "success",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 642,
															"src": "7300:7:3",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"id": 652,
															"name": "returndata",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 644,
															"src": "7309:10:3",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														},
														{
															"id": 653,
															"name": "errorMessage",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 629,
															"src": "7321:12:3",
															"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": 650,
														"name": "verifyCallResult",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 688,
														"src": "7283:16:3",
														"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": 654,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "7283:51:3",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_memory_ptr",
														"typeString": "bytes memory"
													}
												},
												"functionReturnParameters": 633,
												"id": 655,
												"nodeType": "Return",
												"src": "7276:58:3"
											}
										]
									},
									"documentation": {
										"id": 623,
										"nodeType": "StructuredDocumentation",
										"src": "6774:175:3",
										"text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"
									},
									"id": 657,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "functionDelegateCall",
									"nameLocation": "6963:20:3",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 630,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 625,
												"mutability": "mutable",
												"name": "target",
												"nameLocation": "7001:6:3",
												"nodeType": "VariableDeclaration",
												"scope": 657,
												"src": "6993:14:3",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 624,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "6993:7:3",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 627,
												"mutability": "mutable",
												"name": "data",
												"nameLocation": "7030:4:3",
												"nodeType": "VariableDeclaration",
												"scope": 657,
												"src": "7017:17:3",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 626,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "7017:5:3",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 629,
												"mutability": "mutable",
												"name": "errorMessage",
												"nameLocation": "7058:12:3",
												"nodeType": "VariableDeclaration",
												"scope": 657,
												"src": "7044:26:3",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 628,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "7044:6:3",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6983:93:3"
									},
									"returnParameters": {
										"id": 633,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 632,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 657,
												"src": "7095:12:3",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 631,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "7095:5:3",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "7094:14:3"
									},
									"scope": 689,
									"src": "6954:387:3",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 687,
										"nodeType": "Block",
										"src": "7721:582:3",
										"statements": [
											{
												"condition": {
													"id": 669,
													"name": "success",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 660,
													"src": "7735:7:3",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"falseBody": {
													"id": 685,
													"nodeType": "Block",
													"src": "7792:505:3",
													"statements": [
														{
															"condition": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 676,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"expression": {
																		"id": 673,
																		"name": "returndata",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 662,
																		"src": "7876:10:3",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes_memory_ptr",
																			"typeString": "bytes memory"
																		}
																	},
																	"id": 674,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberName": "length",
																	"nodeType": "MemberAccess",
																	"src": "7876:17:3",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": ">",
																"rightExpression": {
																	"hexValue": "30",
																	"id": 675,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "7896:1:3",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_0_by_1",
																		"typeString": "int_const 0"
																	},
																	"value": "0"
																},
																"src": "7876:21:3",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"falseBody": {
																"id": 683,
																"nodeType": "Block",
																"src": "8234:53:3",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"id": 680,
																					"name": "errorMessage",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 664,
																					"src": "8259:12:3",
																					"typeDescriptions": {
																						"typeIdentifier": "t_string_memory_ptr",
																						"typeString": "string memory"
																					}
																				}
																			],
																			"expression": {
																				"argumentTypes": [
																					{
																						"typeIdentifier": "t_string_memory_ptr",
																						"typeString": "string memory"
																					}
																				],
																				"id": 679,
																				"name": "revert",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [
																					4294967277,
																					4294967277
																				],
																				"referencedDeclaration": 4294967277,
																				"src": "8252:6:3",
																				"typeDescriptions": {
																					"typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
																					"typeString": "function (string memory) pure"
																				}
																			},
																			"id": 681,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"kind": "functionCall",
																			"lValueRequested": false,
																			"names": [],
																			"nodeType": "FunctionCall",
																			"src": "8252:20:3",
																			"tryCall": false,
																			"typeDescriptions": {
																				"typeIdentifier": "t_tuple$__$",
																				"typeString": "tuple()"
																			}
																		},
																		"id": 682,
																		"nodeType": "ExpressionStatement",
																		"src": "8252:20:3"
																	}
																]
															},
															"id": 684,
															"nodeType": "IfStatement",
															"src": "7872:415:3",
															"trueBody": {
																"id": 678,
																"nodeType": "Block",
																"src": "7899:329:3",
																"statements": [
																	{
																		"AST": {
																			"nodeType": "YulBlock",
																			"src": "8069:145:3",
																			"statements": [
																				{
																					"nodeType": "YulVariableDeclaration",
																					"src": "8091:40:3",
																					"value": {
																						"arguments": [
																							{
																								"name": "returndata",
																								"nodeType": "YulIdentifier",
																								"src": "8120:10:3"
																							}
																						],
																						"functionName": {
																							"name": "mload",
																							"nodeType": "YulIdentifier",
																							"src": "8114:5:3"
																						},
																						"nodeType": "YulFunctionCall",
																						"src": "8114:17:3"
																					},
																					"variables": [
																						{
																							"name": "returndata_size",
																							"nodeType": "YulTypedName",
																							"src": "8095:15:3",
																							"type": ""
																						}
																					]
																				},
																				{
																					"expression": {
																						"arguments": [
																							{
																								"arguments": [
																									{
																										"kind": "number",
																										"nodeType": "YulLiteral",
																										"src": "8163:2:3",
																										"type": "",
																										"value": "32"
																									},
																									{
																										"name": "returndata",
																										"nodeType": "YulIdentifier",
																										"src": "8167:10:3"
																									}
																								],
																								"functionName": {
																									"name": "add",
																									"nodeType": "YulIdentifier",
																									"src": "8159:3:3"
																								},
																								"nodeType": "YulFunctionCall",
																								"src": "8159:19:3"
																							},
																							{
																								"name": "returndata_size",
																								"nodeType": "YulIdentifier",
																								"src": "8180:15:3"
																							}
																						],
																						"functionName": {
																							"name": "revert",
																							"nodeType": "YulIdentifier",
																							"src": "8152:6:3"
																						},
																						"nodeType": "YulFunctionCall",
																						"src": "8152:44:3"
																					},
																					"nodeType": "YulExpressionStatement",
																					"src": "8152:44:3"
																				}
																			]
																		},
																		"documentation": "@solidity memory-safe-assembly",
																		"evmVersion": "istanbul",
																		"externalReferences": [
																			{
																				"declaration": 662,
																				"isOffset": false,
																				"isSlot": false,
																				"src": "8120:10:3",
																				"valueSize": 1
																			},
																			{
																				"declaration": 662,
																				"isOffset": false,
																				"isSlot": false,
																				"src": "8167:10:3",
																				"valueSize": 1
																			}
																		],
																		"id": 677,
																		"nodeType": "InlineAssembly",
																		"src": "8060:154:3"
																	}
																]
															}
														}
													]
												},
												"id": 686,
												"nodeType": "IfStatement",
												"src": "7731:566:3",
												"trueBody": {
													"id": 672,
													"nodeType": "Block",
													"src": "7744:42:3",
													"statements": [
														{
															"expression": {
																"id": 670,
																"name": "returndata",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 662,
																"src": "7765:10:3",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes_memory_ptr",
																	"typeString": "bytes memory"
																}
															},
															"functionReturnParameters": 668,
															"id": 671,
															"nodeType": "Return",
															"src": "7758:17:3"
														}
													]
												}
											}
										]
									},
									"documentation": {
										"id": 658,
										"nodeType": "StructuredDocumentation",
										"src": "7347:209:3",
										"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": 688,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "verifyCallResult",
									"nameLocation": "7570:16:3",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 665,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 660,
												"mutability": "mutable",
												"name": "success",
												"nameLocation": "7601:7:3",
												"nodeType": "VariableDeclaration",
												"scope": 688,
												"src": "7596:12:3",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 659,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "7596:4:3",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 662,
												"mutability": "mutable",
												"name": "returndata",
												"nameLocation": "7631:10:3",
												"nodeType": "VariableDeclaration",
												"scope": 688,
												"src": "7618:23:3",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 661,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "7618:5:3",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 664,
												"mutability": "mutable",
												"name": "errorMessage",
												"nameLocation": "7665:12:3",
												"nodeType": "VariableDeclaration",
												"scope": 688,
												"src": "7651:26:3",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 663,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "7651:6:3",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "7586:97:3"
									},
									"returnParameters": {
										"id": 668,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 667,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 688,
												"src": "7707:12:3",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 666,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "7707:5:3",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "7706:14:3"
									},
									"scope": 689,
									"src": "7561:742:3",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								}
							],
							"scope": 690,
							"src": "194:8111:3",
							"usedErrors": []
						}
					],
					"src": "101:8205:3"
				},
				"id": 3
			},
			"bridges/errors/GenericErrors.sol": {
				"ast": {
					"absolutePath": "bridges/errors/GenericErrors.sol",
					"exportedSymbols": {
						"CannotBridgeToSameNetwork": [
							697
						],
						"ContractCallNotAllowed": [
							707
						],
						"InvalidAmount": [
							693
						],
						"InvalidBridgeConfigLength": [
							701
						],
						"InvalidConfig": [
							719
						],
						"InvalidContract": [
							717
						],
						"NativeAssetTransferFailed": [
							715
						],
						"NativeValueWithERC": [
							705
						],
						"NoSwapDataProvided": [
							703
						],
						"NoTransferToNullAddress": [
							713
						],
						"NullAddrIsNotAValidSpender": [
							709
						],
						"NullAddrIsNotAnERC20Token": [
							711
						],
						"TokenAddressIsZero": [
							695
						],
						"ZeroPostSwapBalance": [
							699
						]
					},
					"id": 720,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 691,
							"literals": [
								"solidity",
								"0.8",
								".4"
							],
							"nodeType": "PragmaDirective",
							"src": "61:22:4"
						},
						{
							"id": 693,
							"name": "InvalidAmount",
							"nameLocation": "91:13:4",
							"nodeType": "ErrorDefinition",
							"parameters": {
								"id": 692,
								"nodeType": "ParameterList",
								"parameters": [],
								"src": "104:2:4"
							},
							"src": "85:22:4"
						},
						{
							"id": 695,
							"name": "TokenAddressIsZero",
							"nameLocation": "114:18:4",
							"nodeType": "ErrorDefinition",
							"parameters": {
								"id": 694,
								"nodeType": "ParameterList",
								"parameters": [],
								"src": "132:2:4"
							},
							"src": "108:27:4"
						},
						{
							"id": 697,
							"name": "CannotBridgeToSameNetwork",
							"nameLocation": "142:25:4",
							"nodeType": "ErrorDefinition",
							"parameters": {
								"id": 696,
								"nodeType": "ParameterList",
								"parameters": [],
								"src": "167:2:4"
							},
							"src": "136:34:4"
						},
						{
							"id": 699,
							"name": "ZeroPostSwapBalance",
							"nameLocation": "177:19:4",
							"nodeType": "ErrorDefinition",
							"parameters": {
								"id": 698,
								"nodeType": "ParameterList",
								"parameters": [],
								"src": "196:2:4"
							},
							"src": "171:28:4"
						},
						{
							"id": 701,
							"name": "InvalidBridgeConfigLength",
							"nameLocation": "206:25:4",
							"nodeType": "ErrorDefinition",
							"parameters": {
								"id": 700,
								"nodeType": "ParameterList",
								"parameters": [],
								"src": "231:2:4"
							},
							"src": "200:34:4"
						},
						{
							"id": 703,
							"name": "NoSwapDataProvided",
							"nameLocation": "241:18:4",
							"nodeType": "ErrorDefinition",
							"parameters": {
								"id": 702,
								"nodeType": "ParameterList",
								"parameters": [],
								"src": "259:2:4"
							},
							"src": "235:27:4"
						},
						{
							"id": 705,
							"name": "NativeValueWithERC",
							"nameLocation": "269:18:4",
							"nodeType": "ErrorDefinition",
							"parameters": {
								"id": 704,
								"nodeType": "ParameterList",
								"parameters": [],
								"src": "287:2:4"
							},
							"src": "263:27:4"
						},
						{
							"id": 707,
							"name": "ContractCallNotAllowed",
							"nameLocation": "297:22:4",
							"nodeType": "ErrorDefinition",
							"parameters": {
								"id": 706,
								"nodeType": "ParameterList",
								"parameters": [],
								"src": "319:2:4"
							},
							"src": "291:31:4"
						},
						{
							"id": 709,
							"name": "NullAddrIsNotAValidSpender",
							"nameLocation": "329:26:4",
							"nodeType": "ErrorDefinition",
							"parameters": {
								"id": 708,
								"nodeType": "ParameterList",
								"parameters": [],
								"src": "355:2:4"
							},
							"src": "323:35:4"
						},
						{
							"id": 711,
							"name": "NullAddrIsNotAnERC20Token",
							"nameLocation": "365:25:4",
							"nodeType": "ErrorDefinition",
							"parameters": {
								"id": 710,
								"nodeType": "ParameterList",
								"parameters": [],
								"src": "390:2:4"
							},
							"src": "359:34:4"
						},
						{
							"id": 713,
							"name": "NoTransferToNullAddress",
							"nameLocation": "400:23:4",
							"nodeType": "ErrorDefinition",
							"parameters": {
								"id": 712,
								"nodeType": "ParameterList",
								"parameters": [],
								"src": "423:2:4"
							},
							"src": "394:32:4"
						},
						{
							"id": 715,
							"name": "NativeAssetTransferFailed",
							"nameLocation": "433:25:4",
							"nodeType": "ErrorDefinition",
							"parameters": {
								"id": 714,
								"nodeType": "ParameterList",
								"parameters": [],
								"src": "458:2:4"
							},
							"src": "427:34:4"
						},
						{
							"id": 717,
							"name": "InvalidContract",
							"nameLocation": "468:15:4",
							"nodeType": "ErrorDefinition",
							"parameters": {
								"id": 716,
								"nodeType": "ParameterList",
								"parameters": [],
								"src": "483:2:4"
							},
							"src": "462:24:4"
						},
						{
							"id": 719,
							"name": "InvalidConfig",
							"nameLocation": "493:13:4",
							"nodeType": "ErrorDefinition",
							"parameters": {
								"id": 718,
								"nodeType": "ParameterList",
								"parameters": [],
								"src": "506:2:4"
							},
							"src": "487:22:4"
						}
					],
					"src": "61:449:4"
				},
				"id": 4
			},
			"bridges/errors/StargateErrors.sol": {
				"ast": {
					"absolutePath": "bridges/errors/StargateErrors.sol",
					"exportedSymbols": {
						"InvalidDestinationPoolId": [
							731
						],
						"InvalidSourcePoolId": [
							729
						],
						"NoMsgValueForCrossChainMessage": [
							725
						],
						"SenderNotStargateRouter": [
							723
						],
						"StargateRouterAddressZero": [
							727
						]
					},
					"id": 732,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 721,
							"literals": [
								"solidity",
								"0.8",
								".4"
							],
							"nodeType": "PragmaDirective",
							"src": "61:22:5"
						},
						{
							"id": 723,
							"name": "SenderNotStargateRouter",
							"nameLocation": "91:23:5",
							"nodeType": "ErrorDefinition",
							"parameters": {
								"id": 722,
								"nodeType": "ParameterList",
								"parameters": [],
								"src": "114:2:5"
							},
							"src": "85:32:5"
						},
						{
							"id": 725,
							"name": "NoMsgValueForCrossChainMessage",
							"nameLocation": "124:30:5",
							"nodeType": "ErrorDefinition",
							"parameters": {
								"id": 724,
								"nodeType": "ParameterList",
								"parameters": [],
								"src": "154:2:5"
							},
							"src": "118:39:5"
						},
						{
							"id": 727,
							"name": "StargateRouterAddressZero",
							"nameLocation": "164:25:5",
							"nodeType": "ErrorDefinition",
							"parameters": {
								"id": 726,
								"nodeType": "ParameterList",
								"parameters": [],
								"src": "189:2:5"
							},
							"src": "158:34:5"
						},
						{
							"id": 729,
							"name": "InvalidSourcePoolId",
							"nameLocation": "199:19:5",
							"nodeType": "ErrorDefinition",
							"parameters": {
								"id": 728,
								"nodeType": "ParameterList",
								"parameters": [],
								"src": "218:2:5"
							},
							"src": "193:28:5"
						},
						{
							"id": 731,
							"name": "InvalidDestinationPoolId",
							"nameLocation": "228:24:5",
							"nodeType": "ErrorDefinition",
							"parameters": {
								"id": 730,
								"nodeType": "ParameterList",
								"parameters": [],
								"src": "252:2:5"
							},
							"src": "222:33:5"
						}
					],
					"src": "61:195:5"
				},
				"id": 5
			},
			"bridges/facets/StargateFacet.sol": {
				"ast": {
					"absolutePath": "bridges/facets/StargateFacet.sol",
					"exportedSymbols": {
						"CannotBridgeToSameNetwork": [
							697
						],
						"IERC20": [
							77
						],
						"IStargateReceiver": [
							1600
						],
						"IStargateRouter": [
							1720
						],
						"InvalidAmount": [
							693
						],
						"InvalidConfig": [
							719
						],
						"InvalidDestinationPoolId": [
							731
						],
						"InvalidSourcePoolId": [
							729
						],
						"LibDiamond": [
							2554
						],
						"NoMsgValueForCrossChainMessage": [
							725
						],
						"ReentrancyGuard": [
							1544
						],
						"SafeERC20": [
							394
						],
						"SenderNotStargateRouter": [
							723
						],
						"StargateFacet": [
							1479
						],
						"StargateRouterAddressZero": [
							727
						],
						"console": [
							10618
						]
					},
					"id": 1480,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 733,
							"literals": [
								"solidity",
								"0.8",
								".4"
							],
							"nodeType": "PragmaDirective",
							"src": "32:22:6"
						},
						{
							"absolutePath": "bridges/interfaces/IStargateRouter.sol",
							"file": "../interfaces/IStargateRouter.sol",
							"id": 735,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 1480,
							"sourceUnit": 1721,
							"src": "56:66:6",
							"symbolAliases": [
								{
									"foreign": {
										"id": 734,
										"name": "IStargateRouter",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"src": "64:15:6",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"absolutePath": "bridges/interfaces/IStargateReceiver.sol",
							"file": "../interfaces/IStargateReceiver.sol",
							"id": 737,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 1480,
							"sourceUnit": 1601,
							"src": "123:70:6",
							"symbolAliases": [
								{
									"foreign": {
										"id": 736,
										"name": "IStargateReceiver",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"src": "131:17:6",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
							"file": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
							"id": 739,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 1480,
							"sourceUnit": 78,
							"src": "194:70:6",
							"symbolAliases": [
								{
									"foreign": {
										"id": 738,
										"name": "IERC20",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"src": "202:6:6",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"absolutePath": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
							"file": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
							"id": 741,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 1480,
							"sourceUnit": 395,
							"src": "265:82:6",
							"symbolAliases": [
								{
									"foreign": {
										"id": 740,
										"name": "SafeERC20",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"src": "273:9:6",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"absolutePath": "bridges/helpers/ReentrancyGuard.sol",
							"file": "../helpers/ReentrancyGuard.sol",
							"id": 743,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 1480,
							"sourceUnit": 1545,
							"src": "348:63:6",
							"symbolAliases": [
								{
									"foreign": {
										"id": 742,
										"name": "ReentrancyGuard",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"src": "356:15:6",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"absolutePath": "bridges/errors/GenericErrors.sol",
							"file": "../errors/GenericErrors.sol",
							"id": 747,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 1480,
							"sourceUnit": 720,
							"src": "412:100:6",
							"symbolAliases": [
								{
									"foreign": {
										"id": 744,
										"name": "CannotBridgeToSameNetwork",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"src": "420:25:6",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								},
								{
									"foreign": {
										"id": 745,
										"name": "InvalidAmount",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"src": "447:13:6",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								},
								{
									"foreign": {
										"id": 746,
										"name": "InvalidConfig",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"src": "462:13:6",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"absolutePath": "bridges/errors/StargateErrors.sol",
							"file": "../errors/StargateErrors.sol",
							"id": 753,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 1480,
							"sourceUnit": 732,
							"src": "513:175:6",
							"symbolAliases": [
								{
									"foreign": {
										"id": 748,
										"name": "SenderNotStargateRouter",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"src": "521:23:6",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								},
								{
									"foreign": {
										"id": 749,
										"name": "NoMsgValueForCrossChainMessage",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"src": "546:30:6",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								},
								{
									"foreign": {
										"id": 750,
										"name": "StargateRouterAddressZero",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"src": "578:25:6",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								},
								{
									"foreign": {
										"id": 751,
										"name": "InvalidSourcePoolId",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"src": "605:19:6",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								},
								{
									"foreign": {
										"id": 752,
										"name": "InvalidDestinationPoolId",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"src": "626:24:6",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"absolutePath": "bridges/libs/LibDiamond.sol",
							"file": "../libs/LibDiamond.sol",
							"id": 755,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 1480,
							"sourceUnit": 2555,
							"src": "689:50:6",
							"symbolAliases": [
								{
									"foreign": {
										"id": 754,
										"name": "LibDiamond",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"src": "697:10:6",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"absolutePath": "hardhat/console.sol",
							"file": "hardhat/console.sol",
							"id": 756,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 1480,
							"sourceUnit": 10619,
							"src": "740:29:6",
							"symbolAliases": [],
							"unitAlias": ""
						},
						{
							"abstract": false,
							"baseContracts": [
								{
									"baseName": {
										"id": 758,
										"name": "IStargateReceiver",
										"nodeType": "IdentifierPath",
										"referencedDeclaration": 1600,
										"src": "936:17:6"
									},
									"id": 759,
									"nodeType": "InheritanceSpecifier",
									"src": "936:17:6"
								},
								{
									"baseName": {
										"id": 760,
										"name": "ReentrancyGuard",
										"nodeType": "IdentifierPath",
										"referencedDeclaration": 1544,
										"src": "955:15:6"
									},
									"id": 761,
									"nodeType": "InheritanceSpecifier",
									"src": "955:15:6"
								}
							],
							"contractDependencies": [],
							"contractKind": "contract",
							"documentation": {
								"id": 757,
								"nodeType": "StructuredDocumentation",
								"src": "771:138:6",
								"text": "@title StargateFacet\n @author Luke Wickens <luke@pillarproject.io>\n @notice Stargate/LayerZero intergration for bridging tokens"
							},
							"fullyImplemented": true,
							"id": 1479,
							"linearizedBaseContracts": [
								1479,
								1544,
								1600
							],
							"name": "StargateFacet",
							"nameLocation": "919:13:6",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"id": 765,
									"libraryName": {
										"id": 762,
										"name": "SafeERC20",
										"nodeType": "IdentifierPath",
										"referencedDeclaration": 394,
										"src": "983:9:6"
									},
									"nodeType": "UsingForDirective",
									"src": "977:27:6",
									"typeName": {
										"id": 764,
										"nodeType": "UserDefinedTypeName",
										"pathNode": {
											"id": 763,
											"name": "IERC20",
											"nodeType": "IdentifierPath",
											"referencedDeclaration": 77,
											"src": "997:6:6"
										},
										"referencedDeclaration": 77,
										"src": "997:6:6",
										"typeDescriptions": {
											"typeIdentifier": "t_contract$_IERC20_$77",
											"typeString": "contract IERC20"
										}
									}
								},
								{
									"anonymous": false,
									"id": 771,
									"name": "SGInitialized",
									"nameLocation": "1216:13:6",
									"nodeType": "EventDefinition",
									"parameters": {
										"id": 770,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 767,
												"indexed": false,
												"mutability": "mutable",
												"name": "stargate",
												"nameLocation": "1238:8:6",
												"nodeType": "VariableDeclaration",
												"scope": 771,
												"src": "1230:16:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 766,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1230:7:6",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 769,
												"indexed": false,
												"mutability": "mutable",
												"name": "chainId",
												"nameLocation": "1255:7:6",
												"nodeType": "VariableDeclaration",
												"scope": 771,
												"src": "1248:14:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint16",
													"typeString": "uint16"
												},
												"typeName": {
													"id": 768,
													"name": "uint16",
													"nodeType": "ElementaryTypeName",
													"src": "1248:6:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint16",
														"typeString": "uint16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1229:34:6"
									},
									"src": "1210:54:6"
								},
								{
									"anonymous": false,
									"id": 787,
									"name": "SGTransferStarted",
									"nameLocation": "1275:17:6",
									"nodeType": "EventDefinition",
									"parameters": {
										"id": 786,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 773,
												"indexed": false,
												"mutability": "mutable",
												"name": "bridgeUsed",
												"nameLocation": "1309:10:6",
												"nodeType": "VariableDeclaration",
												"scope": 787,
												"src": "1302:17:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 772,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "1302:6:6",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 775,
												"indexed": false,
												"mutability": "mutable",
												"name": "fromToken",
												"nameLocation": "1337:9:6",
												"nodeType": "VariableDeclaration",
												"scope": 787,
												"src": "1329:17:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 774,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1329:7:6",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 777,
												"indexed": false,
												"mutability": "mutable",
												"name": "toToken",
												"nameLocation": "1364:7:6",
												"nodeType": "VariableDeclaration",
												"scope": 787,
												"src": "1356:15:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 776,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1356:7:6",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 779,
												"indexed": false,
												"mutability": "mutable",
												"name": "from",
												"nameLocation": "1389:4:6",
												"nodeType": "VariableDeclaration",
												"scope": 787,
												"src": "1381:12:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 778,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1381:7:6",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 781,
												"indexed": false,
												"mutability": "mutable",
												"name": "to",
												"nameLocation": "1411:2:6",
												"nodeType": "VariableDeclaration",
												"scope": 787,
												"src": "1403:10:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 780,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1403:7:6",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 783,
												"indexed": false,
												"mutability": "mutable",
												"name": "amount",
												"nameLocation": "1431:6:6",
												"nodeType": "VariableDeclaration",
												"scope": 787,
												"src": "1423:14:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 782,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1423:7:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 785,
												"indexed": false,
												"mutability": "mutable",
												"name": "chainIdTo",
												"nameLocation": "1454:9:6",
												"nodeType": "VariableDeclaration",
												"scope": 787,
												"src": "1447:16:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint16",
													"typeString": "uint16"
												},
												"typeName": {
													"id": 784,
													"name": "uint16",
													"nodeType": "ElementaryTypeName",
													"src": "1447:6:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint16",
														"typeString": "uint16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1292:177:6"
									},
									"src": "1269:201:6"
								},
								{
									"anonymous": false,
									"id": 793,
									"name": "SGReceivedOnDestination",
									"nameLocation": "1481:23:6",
									"nodeType": "EventDefinition",
									"parameters": {
										"id": 792,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 789,
												"indexed": false,
												"mutability": "mutable",
												"name": "token",
												"nameLocation": "1513:5:6",
												"nodeType": "VariableDeclaration",
												"scope": 793,
												"src": "1505:13:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 788,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1505:7:6",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 791,
												"indexed": false,
												"mutability": "mutable",
												"name": "amount",
												"nameLocation": "1528:6:6",
												"nodeType": "VariableDeclaration",
												"scope": 793,
												"src": "1520:14:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 790,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1520:7:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1504:31:6"
									},
									"src": "1475:61:6"
								},
								{
									"anonymous": false,
									"id": 797,
									"name": "SGUpdatedRouter",
									"nameLocation": "1547:15:6",
									"nodeType": "EventDefinition",
									"parameters": {
										"id": 796,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 795,
												"indexed": false,
												"mutability": "mutable",
												"name": "newAddress",
												"nameLocation": "1571:10:6",
												"nodeType": "VariableDeclaration",
												"scope": 797,
												"src": "1563:18:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 794,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1563:7:6",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1562:20:6"
									},
									"src": "1541:42:6"
								},
								{
									"anonymous": false,
									"id": 801,
									"name": "SGUpdatedSlippageTolerance",
									"nameLocation": "1594:26:6",
									"nodeType": "EventDefinition",
									"parameters": {
										"id": 800,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 799,
												"indexed": false,
												"mutability": "mutable",
												"name": "newSlippage",
												"nameLocation": "1629:11:6",
												"nodeType": "VariableDeclaration",
												"scope": 801,
												"src": "1621:19:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 798,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1621:7:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1620:21:6"
									},
									"src": "1588:54:6"
								},
								{
									"anonymous": false,
									"id": 809,
									"name": "SGAddedPool",
									"nameLocation": "1653:11:6",
									"nodeType": "EventDefinition",
									"parameters": {
										"id": 808,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 803,
												"indexed": false,
												"mutability": "mutable",
												"name": "chainId",
												"nameLocation": "1672:7:6",
												"nodeType": "VariableDeclaration",
												"scope": 809,
												"src": "1665:14:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint16",
													"typeString": "uint16"
												},
												"typeName": {
													"id": 802,
													"name": "uint16",
													"nodeType": "ElementaryTypeName",
													"src": "1665:6:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint16",
														"typeString": "uint16"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 805,
												"indexed": false,
												"mutability": "mutable",
												"name": "token",
												"nameLocation": "1689:5:6",
												"nodeType": "VariableDeclaration",
												"scope": 809,
												"src": "1681:13:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 804,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1681:7:6",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 807,
												"indexed": false,
												"mutability": "mutable",
												"name": "poolId",
												"nameLocation": "1704:6:6",
												"nodeType": "VariableDeclaration",
												"scope": 809,
												"src": "1696:14:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 806,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1696:7:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1664:47:6"
									},
									"src": "1647:65:6"
								},
								{
									"constant": true,
									"id": 814,
									"mutability": "constant",
									"name": "NAMESPACE",
									"nameLocation": "1946:9:6",
									"nodeType": "VariableDeclaration",
									"scope": 1479,
									"src": "1920:87:6",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_bytes32",
										"typeString": "bytes32"
									},
									"typeName": {
										"id": 810,
										"name": "bytes32",
										"nodeType": "ElementaryTypeName",
										"src": "1920:7:6",
										"typeDescriptions": {
											"typeIdentifier": "t_bytes32",
											"typeString": "bytes32"
										}
									},
									"value": {
										"arguments": [
											{
												"hexValue": "696f2e657468657273706f742e6661636574732e7374617267617465",
												"id": 812,
												"isConstant": false,
												"isLValue": false,
												"isPure": true,
												"kind": "string",
												"lValueRequested": false,
												"nodeType": "Literal",
												"src": "1976:30:6",
												"typeDescriptions": {
													"typeIdentifier": "t_stringliteral_baeadb48cbcf0176d6c6ac156b0140abe0fb28a100a9a6a8b5df37e55693b1c8",
													"typeString": "literal_string \"io.etherspot.facets.stargate\""
												},
												"value": "io.etherspot.facets.stargate"
											}
										],
										"expression": {
											"argumentTypes": [
												{
													"typeIdentifier": "t_stringliteral_baeadb48cbcf0176d6c6ac156b0140abe0fb28a100a9a6a8b5df37e55693b1c8",
													"typeString": "literal_string \"io.etherspot.facets.stargate\""
												}
											],
											"id": 811,
											"name": "keccak256",
											"nodeType": "Identifier",
											"overloadedDeclarations": [],
											"referencedDeclaration": 4294967288,
											"src": "1966:9:6",
											"typeDescriptions": {
												"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
												"typeString": "function (bytes memory) pure returns (bytes32)"
											}
										},
										"id": 813,
										"isConstant": false,
										"isLValue": false,
										"isPure": true,
										"kind": "functionCall",
										"lValueRequested": false,
										"names": [],
										"nodeType": "FunctionCall",
										"src": "1966:41:6",
										"tryCall": false,
										"typeDescriptions": {
											"typeIdentifier": "t_bytes32",
											"typeString": "bytes32"
										}
									},
									"visibility": "internal"
								},
								{
									"canonicalName": "StargateFacet.Storage",
									"id": 829,
									"members": [
										{
											"constant": false,
											"id": 816,
											"mutability": "mutable",
											"name": "stargateRouter",
											"nameLocation": "2046:14:6",
											"nodeType": "VariableDeclaration",
											"scope": 829,
											"src": "2038:22:6",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_address",
												"typeString": "address"
											},
											"typeName": {
												"id": 815,
												"name": "address",
												"nodeType": "ElementaryTypeName",
												"src": "2038:7:6",
												"stateMutability": "nonpayable",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 818,
											"mutability": "mutable",
											"name": "chainId",
											"nameLocation": "2077:7:6",
											"nodeType": "VariableDeclaration",
											"scope": 829,
											"src": "2070:14:6",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint16",
												"typeString": "uint16"
											},
											"typeName": {
												"id": 817,
												"name": "uint16",
												"nodeType": "ElementaryTypeName",
												"src": "2070:6:6",
												"typeDescriptions": {
													"typeIdentifier": "t_uint16",
													"typeString": "uint16"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 820,
											"mutability": "mutable",
											"name": "dstGas",
											"nameLocation": "2102:6:6",
											"nodeType": "VariableDeclaration",
											"scope": 829,
											"src": "2094:14:6",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 819,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "2094:7:6",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 822,
											"mutability": "mutable",
											"name": "slippage",
											"nameLocation": "2126:8:6",
											"nodeType": "VariableDeclaration",
											"scope": 829,
											"src": "2118:16:6",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 821,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "2118:7:6",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 828,
											"mutability": "mutable",
											"name": "poolIds",
											"nameLocation": "2191:7:6",
											"nodeType": "VariableDeclaration",
											"scope": 829,
											"src": "2144:54:6",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_uint256_$_$",
												"typeString": "mapping(uint16 => mapping(address => uint256))"
											},
											"typeName": {
												"id": 827,
												"keyType": {
													"id": 823,
													"name": "uint16",
													"nodeType": "ElementaryTypeName",
													"src": "2152:6:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint16",
														"typeString": "uint16"
													}
												},
												"nodeType": "Mapping",
												"src": "2144:46:6",
												"typeDescriptions": {
													"typeIdentifier": "t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_uint256_$_$",
													"typeString": "mapping(uint16 => mapping(address => uint256))"
												},
												"valueType": {
													"id": 826,
													"keyType": {
														"id": 824,
														"name": "address",
														"nodeType": "ElementaryTypeName",
														"src": "2170:7:6",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "Mapping",
													"src": "2162:27:6",
													"typeDescriptions": {
														"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
														"typeString": "mapping(address => uint256)"
													},
													"valueType": {
														"id": 825,
														"name": "uint256",
														"nodeType": "ElementaryTypeName",
														"src": "2181:7:6",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													}
												}
											},
											"visibility": "internal"
										}
									],
									"name": "Storage",
									"nameLocation": "2020:7:6",
									"nodeType": "StructDefinition",
									"scope": 1479,
									"src": "2013:192:6",
									"visibility": "public"
								},
								{
									"canonicalName": "StargateFacet.StargateData",
									"id": 846,
									"members": [
										{
											"constant": false,
											"id": 831,
											"mutability": "mutable",
											"name": "qty",
											"nameLocation": "2451:3:6",
											"nodeType": "VariableDeclaration",
											"scope": 846,
											"src": "2443:11:6",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 830,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "2443:7:6",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 833,
											"mutability": "mutable",
											"name": "fromToken",
											"nameLocation": "2472:9:6",
											"nodeType": "VariableDeclaration",
											"scope": 846,
											"src": "2464:17:6",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_address",
												"typeString": "address"
											},
											"typeName": {
												"id": 832,
												"name": "address",
												"nodeType": "ElementaryTypeName",
												"src": "2464:7:6",
												"stateMutability": "nonpayable",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 835,
											"mutability": "mutable",
											"name": "toToken",
											"nameLocation": "2499:7:6",
											"nodeType": "VariableDeclaration",
											"scope": 846,
											"src": "2491:15:6",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_address",
												"typeString": "address"
											},
											"typeName": {
												"id": 834,
												"name": "address",
												"nodeType": "ElementaryTypeName",
												"src": "2491:7:6",
												"stateMutability": "nonpayable",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 837,
											"mutability": "mutable",
											"name": "dstChainId",
											"nameLocation": "2523:10:6",
											"nodeType": "VariableDeclaration",
											"scope": 846,
											"src": "2516:17:6",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint16",
												"typeString": "uint16"
											},
											"typeName": {
												"id": 836,
												"name": "uint16",
												"nodeType": "ElementaryTypeName",
												"src": "2516:6:6",
												"typeDescriptions": {
													"typeIdentifier": "t_uint16",
													"typeString": "uint16"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 839,
											"mutability": "mutable",
											"name": "srcPoolId",
											"nameLocation": "2550:9:6",
											"nodeType": "VariableDeclaration",
											"scope": 846,
											"src": "2543:16:6",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint16",
												"typeString": "uint16"
											},
											"typeName": {
												"id": 838,
												"name": "uint16",
												"nodeType": "ElementaryTypeName",
												"src": "2543:6:6",
												"typeDescriptions": {
													"typeIdentifier": "t_uint16",
													"typeString": "uint16"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 841,
											"mutability": "mutable",
											"name": "dstPoolId",
											"nameLocation": "2576:9:6",
											"nodeType": "VariableDeclaration",
											"scope": 846,
											"src": "2569:16:6",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint16",
												"typeString": "uint16"
											},
											"typeName": {
												"id": 840,
												"name": "uint16",
												"nodeType": "ElementaryTypeName",
												"src": "2569:6:6",
												"typeDescriptions": {
													"typeIdentifier": "t_uint16",
													"typeString": "uint16"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 843,
											"mutability": "mutable",
											"name": "to",
											"nameLocation": "2611:2:6",
											"nodeType": "VariableDeclaration",
											"scope": 846,
											"src": "2595:18:6",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_address_payable",
												"typeString": "address payable"
											},
											"typeName": {
												"id": 842,
												"name": "address",
												"nodeType": "ElementaryTypeName",
												"src": "2595:15:6",
												"stateMutability": "payable",
												"typeDescriptions": {
													"typeIdentifier": "t_address_payable",
													"typeString": "address payable"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 845,
											"mutability": "mutable",
											"name": "destStargateComposed",
											"nameLocation": "2631:20:6",
											"nodeType": "VariableDeclaration",
											"scope": 846,
											"src": "2623:28:6",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_address",
												"typeString": "address"
											},
											"typeName": {
												"id": 844,
												"name": "address",
												"nodeType": "ElementaryTypeName",
												"src": "2623:7:6",
												"stateMutability": "nonpayable",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												}
											},
											"visibility": "internal"
										}
									],
									"name": "StargateData",
									"nameLocation": "2420:12:6",
									"nodeType": "StructDefinition",
									"scope": 1479,
									"src": "2413:245:6",
									"visibility": "public"
								},
								{
									"body": {
										"id": 973,
										"nodeType": "Block",
										"src": "2921:1175:6",
										"statements": [
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													},
													"id": 859,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 854,
														"name": "_stargateRouter",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 849,
														"src": "2935:15:6",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "==",
													"rightExpression": {
														"arguments": [
															{
																"hexValue": "30",
																"id": 857,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "2962:1:6",
																"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": 856,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "2954:7:6",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_address_$",
																"typeString": "type(address)"
															},
															"typeName": {
																"id": 855,
																"name": "address",
																"nodeType": "ElementaryTypeName",
																"src": "2954:7:6",
																"typeDescriptions": {}
															}
														},
														"id": 858,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "typeConversion",
														"lValueRequested": false,
														"names": [],
														"nodeType": "FunctionCall",
														"src": "2954:10:6",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "2935:29:6",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 863,
												"nodeType": "IfStatement",
												"src": "2931:57:6",
												"trueBody": {
													"errorCall": {
														"arguments": [],
														"expression": {
															"argumentTypes": [],
															"id": 860,
															"name": "InvalidConfig",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 719,
															"src": "2973:13:6",
															"typeDescriptions": {
																"typeIdentifier": "t_function_error_pure$__$returns$__$",
																"typeString": "function () pure"
															}
														},
														"id": 861,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "functionCall",
														"lValueRequested": false,
														"names": [],
														"nodeType": "FunctionCall",
														"src": "2973:15:6",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_tuple$__$",
															"typeString": "tuple()"
														}
													},
													"id": 862,
													"nodeType": "RevertStatement",
													"src": "2966:22:6"
												}
											},
											{
												"expression": {
													"arguments": [],
													"expression": {
														"argumentTypes": [],
														"expression": {
															"id": 864,
															"name": "LibDiamond",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2554,
															"src": "2998:10:6",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_contract$_LibDiamond_$2554_$",
																"typeString": "type(library LibDiamond)"
															}
														},
														"id": 866,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "enforceIsContractOwner",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 1832,
														"src": "2998:33:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$__$returns$__$",
															"typeString": "function () view"
														}
													},
													"id": 867,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "2998:35:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 868,
												"nodeType": "ExpressionStatement",
												"src": "2998:35:6"
											},
											{
												"assignments": [
													871
												],
												"declarations": [
													{
														"constant": false,
														"id": 871,
														"mutability": "mutable",
														"name": "s",
														"nameLocation": "3059:1:6",
														"nodeType": "VariableDeclaration",
														"scope": 973,
														"src": "3043:17:6",
														"stateVariable": false,
														"storageLocation": "storage",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
															"typeString": "struct StargateFacet.Storage"
														},
														"typeName": {
															"id": 870,
															"nodeType": "UserDefinedTypeName",
															"pathNode": {
																"id": 869,
																"name": "Storage",
																"nodeType": "IdentifierPath",
																"referencedDeclaration": 829,
																"src": "3043:7:6"
															},
															"referencedDeclaration": 829,
															"src": "3043:7:6",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
																"typeString": "struct StargateFacet.Storage"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 874,
												"initialValue": {
													"arguments": [],
													"expression": {
														"argumentTypes": [],
														"id": 872,
														"name": "getStorage",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1478,
														"src": "3063:10:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$829_storage_ptr_$",
															"typeString": "function () pure returns (struct StargateFacet.Storage storage pointer)"
														}
													},
													"id": 873,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3063:12:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
														"typeString": "struct StargateFacet.Storage storage pointer"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "3043:32:6"
											},
											{
												"expression": {
													"id": 882,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"expression": {
															"id": 875,
															"name": "s",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 871,
															"src": "3085:1:6",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
																"typeString": "struct StargateFacet.Storage storage pointer"
															}
														},
														"id": 877,
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"memberName": "stargateRouter",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 816,
														"src": "3085:16:6",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"arguments": [
															{
																"id": 880,
																"name": "_stargateRouter",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 849,
																"src": "3112:15:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															],
															"id": 879,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "3104:7:6",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_address_$",
																"typeString": "type(address)"
															},
															"typeName": {
																"id": 878,
																"name": "address",
																"nodeType": "ElementaryTypeName",
																"src": "3104:7:6",
																"typeDescriptions": {}
															}
														},
														"id": 881,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "typeConversion",
														"lValueRequested": false,
														"names": [],
														"nodeType": "FunctionCall",
														"src": "3104:24:6",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "3085:43:6",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"id": 883,
												"nodeType": "ExpressionStatement",
												"src": "3085:43:6"
											},
											{
												"expression": {
													"id": 888,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"expression": {
															"id": 884,
															"name": "s",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 871,
															"src": "3138:1:6",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
																"typeString": "struct StargateFacet.Storage storage pointer"
															}
														},
														"id": 886,
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"memberName": "chainId",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 818,
														"src": "3138:9:6",
														"typeDescriptions": {
															"typeIdentifier": "t_uint16",
															"typeString": "uint16"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"id": 887,
														"name": "_chainId",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 851,
														"src": "3150:8:6",
														"typeDescriptions": {
															"typeIdentifier": "t_uint16",
															"typeString": "uint16"
														}
													},
													"src": "3138:20:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint16",
														"typeString": "uint16"
													}
												},
												"id": 889,
												"nodeType": "ExpressionStatement",
												"src": "3138:20:6"
											},
											{
												"expression": {
													"id": 894,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"expression": {
															"id": 890,
															"name": "s",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 871,
															"src": "3168:1:6",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
																"typeString": "struct StargateFacet.Storage storage pointer"
															}
														},
														"id": 892,
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"memberName": "slippage",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 822,
														"src": "3168:10:6",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"hexValue": "3530",
														"id": 893,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "number",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "3181:2:6",
														"typeDescriptions": {
															"typeIdentifier": "t_rational_50_by_1",
															"typeString": "int_const 50"
														},
														"value": "50"
													},
													"src": "3168:15:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"id": 895,
												"nodeType": "ExpressionStatement",
												"src": "3168:15:6"
											},
											{
												"expression": {
													"arguments": [
														{
															"hexValue": "31",
															"id": 897,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3222:1:6",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_1_by_1",
																"typeString": "int_const 1"
															},
															"value": "1"
														},
														{
															"hexValue": "307841306238363939316336323138623336633164313944346132653945623063453336303665423438",
															"id": 898,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3225:42:6",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															"value": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
														},
														{
															"hexValue": "31",
															"id": 899,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3269:1:6",
															"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"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_rational_1_by_1",
																"typeString": "int_const 1"
															}
														],
														"id": 896,
														"name": "sgAddPool",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1431,
														"src": "3212:9:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_uint16_$_t_address_$_t_uint256_$returns$__$",
															"typeString": "function (uint16,address,uint256)"
														}
													},
													"id": 900,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3212:59:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 901,
												"nodeType": "ExpressionStatement",
												"src": "3212:59:6"
											},
											{
												"expression": {
													"arguments": [
														{
															"hexValue": "31",
															"id": 903,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3291:1:6",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_1_by_1",
																"typeString": "int_const 1"
															},
															"value": "1"
														},
														{
															"hexValue": "307864414331374639353844326565353233613232303632303639393435393743313344383331656337",
															"id": 904,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3294:42:6",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															"value": "0xdAC17F958D2ee523a2206206994597C13D831ec7"
														},
														{
															"hexValue": "32",
															"id": 905,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3338:1:6",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_2_by_1",
																"typeString": "int_const 2"
															},
															"value": "2"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_rational_1_by_1",
																"typeString": "int_const 1"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_rational_2_by_1",
																"typeString": "int_const 2"
															}
														],
														"id": 902,
														"name": "sgAddPool",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1431,
														"src": "3281:9:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_uint16_$_t_address_$_t_uint256_$returns$__$",
															"typeString": "function (uint16,address,uint256)"
														}
													},
													"id": 906,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3281:59:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 907,
												"nodeType": "ExpressionStatement",
												"src": "3281:59:6"
											},
											{
												"expression": {
													"arguments": [
														{
															"hexValue": "32",
															"id": 909,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3360:1:6",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_2_by_1",
																"typeString": "int_const 2"
															},
															"value": "2"
														},
														{
															"hexValue": "307835356433393833323666393930353966463737353438353234363939393032374233313937393535",
															"id": 910,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3363:42:6",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															"value": "0x55d398326f99059fF775485246999027B3197955"
														},
														{
															"hexValue": "32",
															"id": 911,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3407:1:6",
															"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"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_rational_2_by_1",
																"typeString": "int_const 2"
															}
														],
														"id": 908,
														"name": "sgAddPool",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1431,
														"src": "3350:9:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_uint16_$_t_address_$_t_uint256_$returns$__$",
															"typeString": "function (uint16,address,uint256)"
														}
													},
													"id": 912,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3350:59:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 913,
												"nodeType": "ExpressionStatement",
												"src": "3350:59:6"
											},
											{
												"expression": {
													"arguments": [
														{
															"hexValue": "32",
															"id": 915,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3429:1:6",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_2_by_1",
																"typeString": "int_const 2"
															},
															"value": "2"
														},
														{
															"hexValue": "307865396537434541334465646341353938343738304261666335393962443639414464303837443536",
															"id": 916,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3432:42:6",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															"value": "0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56"
														},
														{
															"hexValue": "35",
															"id": 917,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3476:1:6",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_5_by_1",
																"typeString": "int_const 5"
															},
															"value": "5"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_rational_2_by_1",
																"typeString": "int_const 2"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_rational_5_by_1",
																"typeString": "int_const 5"
															}
														],
														"id": 914,
														"name": "sgAddPool",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1431,
														"src": "3419:9:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_uint16_$_t_address_$_t_uint256_$returns$__$",
															"typeString": "function (uint16,address,uint256)"
														}
													},
													"id": 918,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3419:59:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 919,
												"nodeType": "ExpressionStatement",
												"src": "3419:59:6"
											},
											{
												"expression": {
													"arguments": [
														{
															"hexValue": "36",
															"id": 921,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3498:1:6",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_6_by_1",
																"typeString": "int_const 6"
															},
															"value": "6"
														},
														{
															"hexValue": "307842393745463945663837333443373139303444383030324638623642633636446439633438613645",
															"id": 922,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3501:42:6",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															"value": "0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E"
														},
														{
															"hexValue": "31",
															"id": 923,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3545:1:6",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_1_by_1",
																"typeString": "int_const 1"
															},
															"value": "1"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_rational_6_by_1",
																"typeString": "int_const 6"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_rational_1_by_1",
																"typeString": "int_const 1"
															}
														],
														"id": 920,
														"name": "sgAddPool",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1431,
														"src": "3488:9:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_uint16_$_t_address_$_t_uint256_$returns$__$",
															"typeString": "function (uint16,address,uint256)"
														}
													},
													"id": 924,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3488:59:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 925,
												"nodeType": "ExpressionStatement",
												"src": "3488:59:6"
											},
											{
												"expression": {
													"arguments": [
														{
															"hexValue": "36",
															"id": 927,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3567:1:6",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_6_by_1",
																"typeString": "int_const 6"
															},
															"value": "6"
														},
														{
															"hexValue": "307839373032323330413845613533363031663563443264633030664442633133643464463441386337",
															"id": 928,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3570:42:6",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															"value": "0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7"
														},
														{
															"hexValue": "32",
															"id": 929,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3614:1:6",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_2_by_1",
																"typeString": "int_const 2"
															},
															"value": "2"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_rational_6_by_1",
																"typeString": "int_const 6"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_rational_2_by_1",
																"typeString": "int_const 2"
															}
														],
														"id": 926,
														"name": "sgAddPool",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1431,
														"src": "3557:9:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_uint16_$_t_address_$_t_uint256_$returns$__$",
															"typeString": "function (uint16,address,uint256)"
														}
													},
													"id": 930,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3557:59:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 931,
												"nodeType": "ExpressionStatement",
												"src": "3557:59:6"
											},
											{
												"expression": {
													"arguments": [
														{
															"hexValue": "39",
															"id": 933,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3636:1:6",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_9_by_1",
																"typeString": "int_const 9"
															},
															"value": "9"
														},
														{
															"hexValue": "307832373931426361316632646534363631454438384133304339394137613934343941613834313734",
															"id": 934,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3639:42:6",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															"value": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174"
														},
														{
															"hexValue": "31",
															"id": 935,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3683:1:6",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_1_by_1",
																"typeString": "int_const 1"
															},
															"value": "1"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_rational_9_by_1",
																"typeString": "int_const 9"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_rational_1_by_1",
																"typeString": "int_const 1"
															}
														],
														"id": 932,
														"name": "sgAddPool",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1431,
														"src": "3626:9:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_uint16_$_t_address_$_t_uint256_$returns$__$",
															"typeString": "function (uint16,address,uint256)"
														}
													},
													"id": 936,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3626:59:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 937,
												"nodeType": "ExpressionStatement",
												"src": "3626:59:6"
											},
											{
												"expression": {
													"arguments": [
														{
															"hexValue": "39",
															"id": 939,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3705:1:6",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_9_by_1",
																"typeString": "int_const 9"
															},
															"value": "9"
														},
														{
															"hexValue": "307863323133324430354433316339313461383743363631314331303734384145623034423538653846",
															"id": 940,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3708:42:6",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															"value": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F"
														},
														{
															"hexValue": "32",
															"id": 941,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3752:1:6",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_2_by_1",
																"typeString": "int_const 2"
															},
															"value": "2"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_rational_9_by_1",
																"typeString": "int_const 9"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_rational_2_by_1",
																"typeString": "int_const 2"
															}
														],
														"id": 938,
														"name": "sgAddPool",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1431,
														"src": "3695:9:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_uint16_$_t_address_$_t_uint256_$returns$__$",
															"typeString": "function (uint16,address,uint256)"
														}
													},
													"id": 942,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3695:59:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 943,
												"nodeType": "ExpressionStatement",
												"src": "3695:59:6"
											},
											{
												"expression": {
													"arguments": [
														{
															"hexValue": "3130",
															"id": 945,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3774:2:6",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_10_by_1",
																"typeString": "int_const 10"
															},
															"value": "10"
														},
														{
															"hexValue": "307846463937304136314130346231634131343833344134336635644534353333654244444235434338",
															"id": 946,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3778:42:6",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															"value": "0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8"
														},
														{
															"hexValue": "31",
															"id": 947,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3822:1:6",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_1_by_1",
																"typeString": "int_const 1"
															},
															"value": "1"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_rational_10_by_1",
																"typeString": "int_const 10"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_rational_1_by_1",
																"typeString": "int_const 1"
															}
														],
														"id": 944,
														"name": "sgAddPool",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1431,
														"src": "3764:9:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_uint16_$_t_address_$_t_uint256_$returns$__$",
															"typeString": "function (uint16,address,uint256)"
														}
													},
													"id": 948,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3764:60:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 949,
												"nodeType": "ExpressionStatement",
												"src": "3764:60:6"
											},
											{
												"expression": {
													"arguments": [
														{
															"hexValue": "3130",
															"id": 951,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3844:2:6",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_10_by_1",
																"typeString": "int_const 10"
															},
															"value": "10"
														},
														{
															"hexValue": "307846643038366243374344354334383144434339433835656245343738413143306236394643626239",
															"id": 952,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3848:42:6",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															"value": "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"
														},
														{
															"hexValue": "32",
															"id": 953,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3892:1:6",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_2_by_1",
																"typeString": "int_const 2"
															},
															"value": "2"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_rational_10_by_1",
																"typeString": "int_const 10"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_rational_2_by_1",
																"typeString": "int_const 2"
															}
														],
														"id": 950,
														"name": "sgAddPool",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1431,
														"src": "3834:9:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_uint16_$_t_address_$_t_uint256_$returns$__$",
															"typeString": "function (uint16,address,uint256)"
														}
													},
													"id": 954,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3834:60:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 955,
												"nodeType": "ExpressionStatement",
												"src": "3834:60:6"
											},
											{
												"expression": {
													"arguments": [
														{
															"hexValue": "3131",
															"id": 957,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3914:2:6",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_11_by_1",
																"typeString": "int_const 11"
															},
															"value": "11"
														},
														{
															"hexValue": "307837463563373634634263313466393636394238383833376361313439306343613137633331363037",
															"id": 958,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3918:42:6",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															"value": "0x7F5c764cBc14f9669B88837ca1490cCa17c31607"
														},
														{
															"hexValue": "31",
															"id": 959,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3962:1:6",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_1_by_1",
																"typeString": "int_const 1"
															},
															"value": "1"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_rational_11_by_1",
																"typeString": "int_const 11"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_rational_1_by_1",
																"typeString": "int_const 1"
															}
														],
														"id": 956,
														"name": "sgAddPool",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1431,
														"src": "3904:9:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_uint16_$_t_address_$_t_uint256_$returns$__$",
															"typeString": "function (uint16,address,uint256)"
														}
													},
													"id": 960,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3904:60:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 961,
												"nodeType": "ExpressionStatement",
												"src": "3904:60:6"
											},
											{
												"expression": {
													"arguments": [
														{
															"hexValue": "3132",
															"id": 963,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3984:2:6",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_12_by_1",
																"typeString": "int_const 12"
															},
															"value": "12"
														},
														{
															"hexValue": "307830343036384441364338334146434641306531336261313541363639363636323333354435423735",
															"id": 964,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3988:42:6",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															"value": "0x04068DA6C83AFCFA0e13ba15A6696662335D5B75"
														},
														{
															"hexValue": "31",
															"id": 965,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "4032:1:6",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_1_by_1",
																"typeString": "int_const 1"
															},
															"value": "1"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_rational_12_by_1",
																"typeString": "int_const 12"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_rational_1_by_1",
																"typeString": "int_const 1"
															}
														],
														"id": 962,
														"name": "sgAddPool",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1431,
														"src": "3974:9:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_uint16_$_t_address_$_t_uint256_$returns$__$",
															"typeString": "function (uint16,address,uint256)"
														}
													},
													"id": 966,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3974:60:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 967,
												"nodeType": "ExpressionStatement",
												"src": "3974:60:6"
											},
											{
												"eventCall": {
													"arguments": [
														{
															"id": 969,
															"name": "_stargateRouter",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 849,
															"src": "4063:15:6",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 970,
															"name": "_chainId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 851,
															"src": "4080:8:6",
															"typeDescriptions": {
																"typeIdentifier": "t_uint16",
																"typeString": "uint16"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint16",
																"typeString": "uint16"
															}
														],
														"id": 968,
														"name": "SGInitialized",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 771,
														"src": "4049:13:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint16_$returns$__$",
															"typeString": "function (address,uint16)"
														}
													},
													"id": 971,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4049:40:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 972,
												"nodeType": "EmitStatement",
												"src": "4044:45:6"
											}
										]
									},
									"documentation": {
										"id": 847,
										"nodeType": "StructuredDocumentation",
										"src": "2664:179:6",
										"text": "@notice initializes state variables for the Stargate facet\n @param _stargateRouter - address of the Stargate router contract\n @param _chainId - current chain id"
									},
									"functionSelector": "498ee469",
									"id": 974,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "sgInitialize",
									"nameLocation": "2857:12:6",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 852,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 849,
												"mutability": "mutable",
												"name": "_stargateRouter",
												"nameLocation": "2878:15:6",
												"nodeType": "VariableDeclaration",
												"scope": 974,
												"src": "2870:23:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 848,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2870:7:6",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 851,
												"mutability": "mutable",
												"name": "_chainId",
												"nameLocation": "2902:8:6",
												"nodeType": "VariableDeclaration",
												"scope": 974,
												"src": "2895:15:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint16",
													"typeString": "uint16"
												},
												"typeName": {
													"id": 850,
													"name": "uint16",
													"nodeType": "ElementaryTypeName",
													"src": "2895:6:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint16",
														"typeString": "uint16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2869:42:6"
									},
									"returnParameters": {
										"id": 853,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2921:0:6"
									},
									"scope": 1479,
									"src": "2848:1248:6",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"body": {
										"id": 1166,
										"nodeType": "Block",
										"src": "4318:2367:6",
										"statements": [
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 988,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"expression": {
															"id": 985,
															"name": "msg",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 4294967281,
															"src": "4332:3:6",
															"typeDescriptions": {
																"typeIdentifier": "t_magic_message",
																"typeString": "msg"
															}
														},
														"id": 986,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "value",
														"nodeType": "MemberAccess",
														"src": "4332:9:6",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "<=",
													"rightExpression": {
														"hexValue": "30",
														"id": 987,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "number",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "4345:1:6",
														"typeDescriptions": {
															"typeIdentifier": "t_rational_0_by_1",
															"typeString": "int_const 0"
														},
														"value": "0"
													},
													"src": "4332:14:6",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 992,
												"nodeType": "IfStatement",
												"src": "4328:59:6",
												"trueBody": {
													"errorCall": {
														"arguments": [],
														"expression": {
															"argumentTypes": [],
															"id": 989,
															"name": "NoMsgValueForCrossChainMessage",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 725,
															"src": "4355:30:6",
															"typeDescriptions": {
																"typeIdentifier": "t_function_error_pure$__$returns$__$",
																"typeString": "function () pure"
															}
														},
														"id": 990,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "functionCall",
														"lValueRequested": false,
														"names": [],
														"nodeType": "FunctionCall",
														"src": "4355:32:6",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_tuple$__$",
															"typeString": "tuple()"
														}
													},
													"id": 991,
													"nodeType": "RevertStatement",
													"src": "4348:39:6"
												}
											},
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 996,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"expression": {
															"id": 993,
															"name": "_sgData",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 978,
															"src": "4401:7:6",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_StargateData_$846_memory_ptr",
																"typeString": "struct StargateFacet.StargateData memory"
															}
														},
														"id": 994,
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "qty",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 831,
														"src": "4401:11:6",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "<=",
													"rightExpression": {
														"hexValue": "30",
														"id": 995,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "number",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "4416:1:6",
														"typeDescriptions": {
															"typeIdentifier": "t_rational_0_by_1",
															"typeString": "int_const 0"
														},
														"value": "0"
													},
													"src": "4401:16:6",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 1000,
												"nodeType": "IfStatement",
												"src": "4397:44:6",
												"trueBody": {
													"errorCall": {
														"arguments": [],
														"expression": {
															"argumentTypes": [],
															"id": 997,
															"name": "InvalidAmount",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 693,
															"src": "4426:13:6",
															"typeDescriptions": {
																"typeIdentifier": "t_function_error_pure$__$returns$__$",
																"typeString": "function () pure"
															}
														},
														"id": 998,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "functionCall",
														"lValueRequested": false,
														"names": [],
														"nodeType": "FunctionCall",
														"src": "4426:15:6",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_tuple$__$",
															"typeString": "tuple()"
														}
													},
													"id": 999,
													"nodeType": "RevertStatement",
													"src": "4419:22:6"
												}
											},
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													},
													"id": 1031,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"commonType": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														},
														"id": 1023,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"commonType": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															"id": 1015,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"commonType": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																},
																"id": 1007,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"expression": {
																		"id": 1001,
																		"name": "_sgData",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 978,
																		"src": "4468:7:6",
																		"typeDescriptions": {
																			"typeIdentifier": "t_struct$_StargateData_$846_memory_ptr",
																			"typeString": "struct StargateFacet.StargateData memory"
																		}
																	},
																	"id": 1002,
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberName": "fromToken",
																	"nodeType": "MemberAccess",
																	"referencedDeclaration": 833,
																	"src": "4468:17:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "==",
																"rightExpression": {
																	"arguments": [
																		{
																			"hexValue": "30",
																			"id": 1005,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "4497:1:6",
																			"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": 1004,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "4489:7:6",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_address_$",
																			"typeString": "type(address)"
																		},
																		"typeName": {
																			"id": 1003,
																			"name": "address",
																			"nodeType": "ElementaryTypeName",
																			"src": "4489:7:6",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 1006,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "4489:10:6",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																"src": "4468:31:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "||",
															"rightExpression": {
																"commonType": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																},
																"id": 1014,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"expression": {
																		"id": 1008,
																		"name": "_sgData",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 978,
																		"src": "4515:7:6",
																		"typeDescriptions": {
																			"typeIdentifier": "t_struct$_StargateData_$846_memory_ptr",
																			"typeString": "struct StargateFacet.StargateData memory"
																		}
																	},
																	"id": 1009,
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberName": "toToken",
																	"nodeType": "MemberAccess",
																	"referencedDeclaration": 835,
																	"src": "4515:15:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "==",
																"rightExpression": {
																	"arguments": [
																		{
																			"hexValue": "30",
																			"id": 1012,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "4542:1:6",
																			"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": 1011,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "4534:7:6",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_address_$",
																			"typeString": "type(address)"
																		},
																		"typeName": {
																			"id": 1010,
																			"name": "address",
																			"nodeType": "ElementaryTypeName",
																			"src": "4534:7:6",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 1013,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "4534:10:6",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																"src": "4515:29:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"src": "4468:76:6",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": "||",
														"rightExpression": {
															"commonType": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															"id": 1022,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"expression": {
																	"id": 1016,
																	"name": "_sgData",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 978,
																	"src": "4560:7:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_struct$_StargateData_$846_memory_ptr",
																		"typeString": "struct StargateFacet.StargateData memory"
																	}
																},
																"id": 1017,
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"memberName": "to",
																"nodeType": "MemberAccess",
																"referencedDeclaration": 843,
																"src": "4560:10:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_address_payable",
																	"typeString": "address payable"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "==",
															"rightExpression": {
																"arguments": [
																	{
																		"hexValue": "30",
																		"id": 1020,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "4582:1:6",
																		"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": 1019,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "4574:7:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_address_$",
																		"typeString": "type(address)"
																	},
																	"typeName": {
																		"id": 1018,
																		"name": "address",
																		"nodeType": "ElementaryTypeName",
																		"src": "4574:7:6",
																		"typeDescriptions": {}
																	}
																},
																"id": 1021,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "typeConversion",
																"lValueRequested": false,
																"names": [],
																"nodeType": "FunctionCall",
																"src": "4574:10:6",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"src": "4560:24:6",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														"src": "4468:116:6",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "||",
													"rightExpression": {
														"commonType": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														},
														"id": 1030,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"expression": {
																"id": 1024,
																"name": "_sgData",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 978,
																"src": "4600:7:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_struct$_StargateData_$846_memory_ptr",
																	"typeString": "struct StargateFacet.StargateData memory"
																}
															},
															"id": 1025,
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "destStargateComposed",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 845,
															"src": "4600:28:6",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": "==",
														"rightExpression": {
															"arguments": [
																{
																	"hexValue": "30",
																	"id": 1028,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "4640:1:6",
																	"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": 1027,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "4632:7:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_address_$",
																	"typeString": "type(address)"
																},
																"typeName": {
																	"id": 1026,
																	"name": "address",
																	"nodeType": "ElementaryTypeName",
																	"src": "4632:7:6",
																	"typeDescriptions": {}
																}
															},
															"id": 1029,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "typeConversion",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "4632:10:6",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"src": "4600:42:6",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"src": "4468:174:6",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 1035,
												"nodeType": "IfStatement",
												"src": "4451:224:6",
												"trueBody": {
													"errorCall": {
														"arguments": [],
														"expression": {
															"argumentTypes": [],
															"id": 1032,
															"name": "InvalidConfig",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 719,
															"src": "4660:13:6",
															"typeDescriptions": {
																"typeIdentifier": "t_function_error_pure$__$returns$__$",
																"typeString": "function () pure"
															}
														},
														"id": 1033,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "functionCall",
														"lValueRequested": false,
														"names": [],
														"nodeType": "FunctionCall",
														"src": "4660:15:6",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_tuple$__$",
															"typeString": "tuple()"
														}
													},
													"id": 1034,
													"nodeType": "RevertStatement",
													"src": "4653:22:6"
												}
											},
											{
												"assignments": [
													1038
												],
												"declarations": [
													{
														"constant": false,
														"id": 1038,
														"mutability": "mutable",
														"name": "s",
														"nameLocation": "4728:1:6",
														"nodeType": "VariableDeclaration",
														"scope": 1166,
														"src": "4712:17:6",
														"stateVariable": false,
														"storageLocation": "storage",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
															"typeString": "struct StargateFacet.Storage"
														},
														"typeName": {
															"id": 1037,
															"nodeType": "UserDefinedTypeName",
															"pathNode": {
																"id": 1036,
																"name": "Storage",
																"nodeType": "IdentifierPath",
																"referencedDeclaration": 829,
																"src": "4712:7:6"
															},
															"referencedDeclaration": 829,
															"src": "4712:7:6",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
																"typeString": "struct StargateFacet.Storage"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 1041,
												"initialValue": {
													"arguments": [],
													"expression": {
														"argumentTypes": [],
														"id": 1039,
														"name": "getStorage",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1478,
														"src": "4732:10:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$829_storage_ptr_$",
															"typeString": "function () pure returns (struct StargateFacet.Storage storage pointer)"
														}
													},
													"id": 1040,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4732:12:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
														"typeString": "struct StargateFacet.Storage storage pointer"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "4712:32:6"
											},
											{
												"condition": {
													"id": 1050,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "UnaryOperation",
													"operator": "!",
													"prefix": true,
													"src": "4759:63:6",
													"subExpression": {
														"arguments": [
															{
																"expression": {
																	"id": 1043,
																	"name": "s",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 1038,
																	"src": "4774:1:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
																		"typeString": "struct StargateFacet.Storage storage pointer"
																	}
																},
																"id": 1044,
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"memberName": "chainId",
																"nodeType": "MemberAccess",
																"referencedDeclaration": 818,
																"src": "4774:9:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint16",
																	"typeString": "uint16"
																}
															},
															{
																"expression": {
																	"id": 1045,
																	"name": "_sgData",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 978,
																	"src": "4785:7:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_struct$_StargateData_$846_memory_ptr",
																		"typeString": "struct StargateFacet.StargateData memory"
																	}
																},
																"id": 1046,
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"memberName": "fromToken",
																"nodeType": "MemberAccess",
																"referencedDeclaration": 833,
																"src": "4785:17:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															{
																"expression": {
																	"id": 1047,
																	"name": "_sgData",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 978,
																	"src": "4804:7:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_struct$_StargateData_$846_memory_ptr",
																		"typeString": "struct StargateFacet.StargateData memory"
																	}
																},
																"id": 1048,
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"memberName": "srcPoolId",
																"nodeType": "MemberAccess",
																"referencedDeclaration": 839,
																"src": "4804:17:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint16",
																	"typeString": "uint16"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_uint16",
																	"typeString": "uint16"
																},
																{
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																},
																{
																	"typeIdentifier": "t_uint16",
																	"typeString": "uint16"
																}
															],
															"id": 1042,
															"name": "sgCheckPoolId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1461,
															"src": "4760:13:6",
															"typeDescriptions": {
																"typeIdentifier": "t_function_internal_view$_t_uint16_$_t_address_$_t_uint256_$returns$_t_bool_$",
																"typeString": "function (uint16,address,uint256) view returns (bool)"
															}
														},
														"id": 1049,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "functionCall",
														"lValueRequested": false,
														"names": [],
														"nodeType": "FunctionCall",
														"src": "4760:62:6",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 1054,
												"nodeType": "IfStatement",
												"src": "4755:109:6",
												"trueBody": {
													"errorCall": {
														"arguments": [],
														"expression": {
															"argumentTypes": [],
															"id": 1051,
															"name": "InvalidSourcePoolId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 729,
															"src": "4843:19:6",
															"typeDescriptions": {
																"typeIdentifier": "t_function_error_pure$__$returns$__$",
																"typeString": "function () pure"
															}
														},
														"id": 1052,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "functionCall",
														"lValueRequested": false,
														"names": [],
														"nodeType": "FunctionCall",
														"src": "4843:21:6",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_tuple$__$",
															"typeString": "tuple()"
														}
													},
													"id": 1053,
													"nodeType": "RevertStatement",
													"src": "4836:28:6"
												}
											},
											{
												"condition": {
													"id": 1063,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "UnaryOperation",
													"operator": "!",
													"prefix": true,
													"src": "4891:132:6",
													"subExpression": {
														"arguments": [
															{
																"expression": {
																	"id": 1056,
																	"name": "_sgData",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 978,
																	"src": "4923:7:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_struct$_StargateData_$846_memory_ptr",
																		"typeString": "struct StargateFacet.StargateData memory"
																	}
																},
																"id": 1057,
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"memberName": "dstChainId",
																"nodeType": "MemberAccess",
																"referencedDeclaration": 837,
																"src": "4923:18:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint16",
																	"typeString": "uint16"
																}
															},
															{
																"expression": {
																	"id": 1058,
																	"name": "_sgData",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 978,
																	"src": "4959:7:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_struct$_StargateData_$846_memory_ptr",
																		"typeString": "struct StargateFacet.StargateData memory"
																	}
																},
																"id": 1059,
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"memberName": "toToken",
																"nodeType": "MemberAccess",
																"referencedDeclaration": 835,
																"src": "4959:15:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															{
																"expression": {
																	"id": 1060,
																	"name": "_sgData",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 978,
																	"src": "4992:7:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_struct$_StargateData_$846_memory_ptr",
																		"typeString": "struct StargateFacet.StargateData memory"
																	}
																},
																"id": 1061,
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"memberName": "dstPoolId",
																"nodeType": "MemberAccess",
																"referencedDeclaration": 841,
																"src": "4992:17:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint16",
																	"typeString": "uint16"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_uint16",
																	"typeString": "uint16"
																},
																{
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																},
																{
																	"typeIdentifier": "t_uint16",
																	"typeString": "uint16"
																}
															],
															"id": 1055,
															"name": "sgCheckPoolId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1461,
															"src": "4892:13:6",
															"typeDescriptions": {
																"typeIdentifier": "t_function_internal_view$_t_uint16_$_t_address_$_t_uint256_$returns$_t_bool_$",
																"typeString": "function (uint16,address,uint256) view returns (bool)"
															}
														},
														"id": 1062,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "functionCall",
														"lValueRequested": false,
														"names": [],
														"nodeType": "FunctionCall",
														"src": "4892:131:6",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 1067,
												"nodeType": "IfStatement",
												"src": "4874:193:6",
												"trueBody": {
													"errorCall": {
														"arguments": [],
														"expression": {
															"argumentTypes": [],
															"id": 1064,
															"name": "InvalidDestinationPoolId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 731,
															"src": "5041:24:6",
															"typeDescriptions": {
																"typeIdentifier": "t_function_error_pure$__$returns$__$",
																"typeString": "function () pure"
															}
														},
														"id": 1065,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "functionCall",
														"lValueRequested": false,
														"names": [],
														"nodeType": "FunctionCall",
														"src": "5041:26:6",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_tuple$__$",
															"typeString": "tuple()"
														}
													},
													"id": 1066,
													"nodeType": "RevertStatement",
													"src": "5034:33:6"
												}
											},
											{
												"assignments": [
													1069
												],
												"declarations": [
													{
														"constant": false,
														"id": 1069,
														"mutability": "mutable",
														"name": "minAmountOut",
														"nameLocation": "5116:12:6",
														"nodeType": "VariableDeclaration",
														"scope": 1166,
														"src": "5108:20:6",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 1068,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "5108:7:6",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 1074,
												"initialValue": {
													"arguments": [
														{
															"expression": {
																"id": 1071,
																"name": "_sgData",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 978,
																"src": "5146:7:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_struct$_StargateData_$846_memory_ptr",
																	"typeString": "struct StargateFacet.StargateData memory"
																}
															},
															"id": 1072,
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "qty",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 831,
															"src": "5146:11:6",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 1070,
														"name": "sgMinAmountOut",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1287,
														"src": "5131:14:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
															"typeString": "function (uint256) view returns (uint256)"
														}
													},
													"id": 1073,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5131:27:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "5108:50:6"
											},
											{
												"assignments": [
													1076
												],
												"declarations": [
													{
														"constant": false,
														"id": 1076,
														"mutability": "mutable",
														"name": "payload",
														"nameLocation": "5284:7:6",
														"nodeType": "VariableDeclaration",
														"scope": 1166,
														"src": "5271:20:6",
														"stateVariable": false,
														"storageLocation": "memory",
														"typeDescriptions": {
															"typeIdentifier": "t_bytes_memory_ptr",
															"typeString": "bytes"
														},
														"typeName": {
															"id": 1075,
															"name": "bytes",
															"nodeType": "ElementaryTypeName",
															"src": "5271:5:6",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_storage_ptr",
																"typeString": "bytes"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 1082,
												"initialValue": {
													"arguments": [
														{
															"expression": {
																"id": 1079,
																"name": "_sgData",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 978,
																"src": "5305:7:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_struct$_StargateData_$846_memory_ptr",
																	"typeString": "struct StargateFacet.StargateData memory"
																}
															},
															"id": 1080,
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "to",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 843,
															"src": "5305:10:6",
															"typeDescriptions": {
																"typeIdentifier": "t_address_payable",
																"typeString": "address payable"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address_payable",
																"typeString": "address payable"
															}
														],
														"expression": {
															"id": 1077,
															"name": "abi",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 4294967295,
															"src": "5294:3:6",
															"typeDescriptions": {
																"typeIdentifier": "t_magic_abi",
																"typeString": "abi"
															}
														},
														"id": 1078,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"lValueRequested": false,
														"memberName": "encode",
														"nodeType": "MemberAccess",
														"src": "5294:10:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
															"typeString": "function () pure returns (bytes memory)"
														}
													},
													"id": 1081,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5294:22:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_memory_ptr",
														"typeString": "bytes memory"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "5271:45:6"
											},
											{
												"expression": {
													"arguments": [
														{
															"expression": {
																"id": 1088,
																"name": "msg",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4294967281,
																"src": "5430:3:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_magic_message",
																	"typeString": "msg"
																}
															},
															"id": 1089,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "sender",
															"nodeType": "MemberAccess",
															"src": "5430:10:6",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"arguments": [
																{
																	"id": 1092,
																	"name": "this",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967268,
																	"src": "5462:4:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_contract$_StargateFacet_$1479",
																		"typeString": "contract StargateFacet"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_contract$_StargateFacet_$1479",
																		"typeString": "contract StargateFacet"
																	}
																],
																"id": 1091,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "5454:7:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_address_$",
																	"typeString": "type(address)"
																},
																"typeName": {
																	"id": 1090,
																	"name": "address",
																	"nodeType": "ElementaryTypeName",
																	"src": "5454:7:6",
																	"typeDescriptions": {}
																}
															},
															"id": 1093,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "5454:13:6",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"expression": {
																"id": 1094,
																"name": "_sgData",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 978,
																"src": "5481:7:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_struct$_StargateData_$846_memory_ptr",
																	"typeString": "struct StargateFacet.StargateData memory"
																}
															},
															"id": 1095,
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "qty",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 831,
															"src": "5481:11:6",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"expression": {
															"arguments": [
																{
																	"expression": {
																		"id": 1084,
																		"name": "_sgData",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 978,
																		"src": "5381:7:6",
																		"typeDescriptions": {
																			"typeIdentifier": "t_struct$_StargateData_$846_memory_ptr",
																			"typeString": "struct StargateFacet.StargateData memory"
																		}
																	},
																	"id": 1085,
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberName": "fromToken",
																	"nodeType": "MemberAccess",
																	"referencedDeclaration": 833,
																	"src": "5381:17:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"id": 1083,
																"name": "IERC20",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 77,
																"src": "5374:6:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_contract$_IERC20_$77_$",
																	"typeString": "type(contract IERC20)"
																}
															},
															"id": 1086,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "5374:25:6",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_IERC20_$77",
																"typeString": "contract IERC20"
															}
														},
														"id": 1087,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "safeTransferFrom",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 171,
														"src": "5374:42:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$77_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$77_$",
															"typeString": "function (contract IERC20,address,address,uint256)"
														}
													},
													"id": 1096,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5374:128:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1097,
												"nodeType": "ExpressionStatement",
												"src": "5374:128:6"
											},
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"expression": {
																		"id": 1105,
																		"name": "s",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 1038,
																		"src": "5572:1:6",
																		"typeDescriptions": {
																			"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
																			"typeString": "struct StargateFacet.Storage storage pointer"
																		}
																	},
																	"id": 1106,
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberName": "stargateRouter",
																	"nodeType": "MemberAccess",
																	"referencedDeclaration": 816,
																	"src": "5572:16:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"id": 1104,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "5564:7:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_address_$",
																	"typeString": "type(address)"
																},
																"typeName": {
																	"id": 1103,
																	"name": "address",
																	"nodeType": "ElementaryTypeName",
																	"src": "5564:7:6",
																	"typeDescriptions": {}
																}
															},
															"id": 1107,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "5564:25:6",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"expression": {
																"id": 1108,
																"name": "_sgData",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 978,
																"src": "5603:7:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_struct$_StargateData_$846_memory_ptr",
																	"typeString": "struct StargateFacet.StargateData memory"
																}
															},
															"id": 1109,
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "qty",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 831,
															"src": "5603:11:6",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"expression": {
															"arguments": [
																{
																	"expression": {
																		"id": 1099,
																		"name": "_sgData",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 978,
																		"src": "5520:7:6",
																		"typeDescriptions": {
																			"typeIdentifier": "t_struct$_StargateData_$846_memory_ptr",
																			"typeString": "struct StargateFacet.StargateData memory"
																		}
																	},
																	"id": 1100,
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberName": "fromToken",
																	"nodeType": "MemberAccess",
																	"referencedDeclaration": 833,
																	"src": "5520:17:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"id": 1098,
																"name": "IERC20",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 77,
																"src": "5513:6:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_contract$_IERC20_$77_$",
																	"typeString": "type(contract IERC20)"
																}
															},
															"id": 1101,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "5513:25:6",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_IERC20_$77",
																"typeString": "contract IERC20"
															}
														},
														"id": 1102,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "safeApprove",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 215,
														"src": "5513:37:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$77_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$77_$",
															"typeString": "function (contract IERC20,address,uint256)"
														}
													},
													"id": 1110,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5513:111:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1111,
												"nodeType": "ExpressionStatement",
												"src": "5513:111:6"
											},
											{
												"expression": {
													"arguments": [
														{
															"expression": {
																"id": 1120,
																"name": "_sgData",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 978,
																"src": "5793:7:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_struct$_StargateData_$846_memory_ptr",
																	"typeString": "struct StargateFacet.StargateData memory"
																}
															},
															"id": 1121,
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "dstChainId",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 837,
															"src": "5793:18:6",
															"typeDescriptions": {
																"typeIdentifier": "t_uint16",
																"typeString": "uint16"
															}
														},
														{
															"expression": {
																"id": 1122,
																"name": "_sgData",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 978,
																"src": "5853:7:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_struct$_StargateData_$846_memory_ptr",
																	"typeString": "struct StargateFacet.StargateData memory"
																}
															},
															"id": 1123,
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "srcPoolId",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 839,
															"src": "5853:17:6",
															"typeDescriptions": {
																"typeIdentifier": "t_uint16",
																"typeString": "uint16"
															}
														},
														{
															"expression": {
																"id": 1124,
																"name": "_sgData",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 978,
																"src": "5914:7:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_struct$_StargateData_$846_memory_ptr",
																	"typeString": "struct StargateFacet.StargateData memory"
																}
															},
															"id": 1125,
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "dstPoolId",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 841,
															"src": "5914:17:6",
															"typeDescriptions": {
																"typeIdentifier": "t_uint16",
																"typeString": "uint16"
															}
														},
														{
															"arguments": [
																{
																	"expression": {
																		"id": 1128,
																		"name": "msg",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4294967281,
																		"src": "5988:3:6",
																		"typeDescriptions": {
																			"typeIdentifier": "t_magic_message",
																			"typeString": "msg"
																		}
																	},
																	"id": 1129,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberName": "sender",
																	"nodeType": "MemberAccess",
																	"src": "5988:10:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"id": 1127,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "5980:8:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_address_payable_$",
																	"typeString": "type(address payable)"
																},
																"typeName": {
																	"id": 1126,
																	"name": "address",
																	"nodeType": "ElementaryTypeName",
																	"src": "5980:8:6",
																	"stateMutability": "payable",
																	"typeDescriptions": {}
																}
															},
															"id": 1130,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "5980:19:6",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_address_payable",
																"typeString": "address payable"
															}
														},
														{
															"expression": {
																"id": 1131,
																"name": "_sgData",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 978,
																"src": "6083:7:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_struct$_StargateData_$846_memory_ptr",
																	"typeString": "struct StargateFacet.StargateData memory"
																}
															},
															"id": 1132,
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "qty",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 831,
															"src": "6083:11:6",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"id": 1133,
															"name": "minAmountOut",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1069,
															"src": "6153:12:6",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"arguments": [
																{
																	"hexValue": "323030303030",
																	"id": 1136,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "6229:6:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_200000_by_1",
																		"typeString": "int_const 200000"
																	},
																	"value": "200000"
																},
																{
																	"hexValue": "30",
																	"id": 1137,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "6237:1:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_0_by_1",
																		"typeString": "int_const 0"
																	},
																	"value": "0"
																},
																{
																	"hexValue": "3078",
																	"id": 1138,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "6240:4:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837",
																		"typeString": "literal_string \"0x\""
																	},
																	"value": "0x"
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_rational_200000_by_1",
																		"typeString": "int_const 200000"
																	},
																	{
																		"typeIdentifier": "t_rational_0_by_1",
																		"typeString": "int_const 0"
																	},
																	{
																		"typeIdentifier": "t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837",
																		"typeString": "literal_string \"0x\""
																	}
																],
																"expression": {
																	"id": 1134,
																	"name": "IStargateRouter",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 1720,
																	"src": "6205:15:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_contract$_IStargateRouter_$1720_$",
																		"typeString": "type(contract IStargateRouter)"
																	}
																},
																"id": 1135,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"memberName": "lzTxObj",
																"nodeType": "MemberAccess",
																"referencedDeclaration": 1610,
																"src": "6205:23:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_struct$_lzTxObj_$1610_storage_ptr_$",
																	"typeString": "type(struct IStargateRouter.lzTxObj storage pointer)"
																}
															},
															"id": 1139,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "structConstructorCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "6205:40:6",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_lzTxObj_$1610_memory_ptr",
																"typeString": "struct IStargateRouter.lzTxObj memory"
															}
														},
														{
															"arguments": [
																{
																	"expression": {
																		"id": 1142,
																		"name": "_sgData",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 978,
																		"src": "6295:7:6",
																		"typeDescriptions": {
																			"typeIdentifier": "t_struct$_StargateData_$846_memory_ptr",
																			"typeString": "struct StargateFacet.StargateData memory"
																		}
																	},
																	"id": 1143,
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberName": "destStargateComposed",
																	"nodeType": "MemberAccess",
																	"referencedDeclaration": 845,
																	"src": "6295:28:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 1140,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "6278:3:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 1141,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodePacked",
																"nodeType": "MemberAccess",
																"src": "6278:16:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function () pure returns (bytes memory)"
																}
															},
															"id": 1144,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "6278:46:6",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														},
														{
															"id": 1145,
															"name": "payload",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1076,
															"src": "6390:7:6",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_uint16",
																"typeString": "uint16"
															},
															{
																"typeIdentifier": "t_uint16",
																"typeString": "uint16"
															},
															{
																"typeIdentifier": "t_uint16",
																"typeString": "uint16"
															},
															{
																"typeIdentifier": "t_address_payable",
																"typeString": "address payable"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_struct$_lzTxObj_$1610_memory_ptr",
																"typeString": "struct IStargateRouter.lzTxObj memory"
															},
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															},
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_uint16",
																	"typeString": "uint16"
																},
																{
																	"typeIdentifier": "t_uint16",
																	"typeString": "uint16"
																},
																{
																	"typeIdentifier": "t_uint16",
																	"typeString": "uint16"
																},
																{
																	"typeIdentifier": "t_address_payable",
																	"typeString": "address payable"
																},
																{
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																{
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																{
																	"typeIdentifier": "t_struct$_lzTxObj_$1610_memory_ptr",
																	"typeString": "struct IStargateRouter.lzTxObj memory"
																},
																{
																	"typeIdentifier": "t_bytes_memory_ptr",
																	"typeString": "bytes memory"
																},
																{
																	"typeIdentifier": "t_bytes_memory_ptr",
																	"typeString": "bytes memory"
																}
															],
															"expression": {
																"arguments": [
																	{
																		"expression": {
																			"id": 1113,
																			"name": "s",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 1038,
																			"src": "5739:1:6",
																			"typeDescriptions": {
																				"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
																				"typeString": "struct StargateFacet.Storage storage pointer"
																			}
																		},
																		"id": 1114,
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberName": "stargateRouter",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 816,
																		"src": "5739:16:6",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	],
																	"id": 1112,
																	"name": "IStargateRouter",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 1720,
																	"src": "5723:15:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_contract$_IStargateRouter_$1720_$",
																		"typeString": "type(contract IStargateRouter)"
																	}
																},
																"id": 1115,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "typeConversion",
																"lValueRequested": false,
																"names": [],
																"nodeType": "FunctionCall",
																"src": "5723:33:6",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_contract$_IStargateRouter_$1720",
																	"typeString": "contract IStargateRouter"
																}
															},
															"id": 1116,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "swap",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 1641,
															"src": "5723:38:6",
															"typeDescriptions": {
																"typeIdentifier": "t_function_external_payable$_t_uint16_$_t_uint256_$_t_uint256_$_t_address_payable_$_t_uint256_$_t_uint256_$_t_struct$_lzTxObj_$1610_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
																"typeString": "function (uint16,uint256,uint256,address payable,uint256,uint256,struct IStargateRouter.lzTxObj memory,bytes memory,bytes memory) payable external"
															}
														},
														"id": 1119,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"names": [
															"value"
														],
														"nodeType": "FunctionCallOptions",
														"options": [
															{
																"expression": {
																	"id": 1117,
																	"name": "msg",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967281,
																	"src": "5769:3:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_message",
																		"typeString": "msg"
																	}
																},
																"id": 1118,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"memberName": "value",
																"nodeType": "MemberAccess",
																"src": "5769:9:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															}
														],
														"src": "5723:56:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_external_payable$_t_uint16_$_t_uint256_$_t_uint256_$_t_address_payable_$_t_uint256_$_t_uint256_$_t_struct$_lzTxObj_$1610_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$value",
															"typeString": "function (uint16,uint256,uint256,address payable,uint256,uint256,struct IStargateRouter.lzTxObj memory,bytes memory,bytes memory) payable external"
														}
													},
													"id": 1146,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5723:701:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1147,
												"nodeType": "ExpressionStatement",
												"src": "5723:701:6"
											},
											{
												"eventCall": {
													"arguments": [
														{
															"hexValue": "7374617267617465",
															"id": 1149,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "6471:10:6",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_6ba4f45f593ebc3b0035188aa4ba0c82f39a70f583863862aab89e6ae77de4d9",
																"typeString": "literal_string \"stargate\""
															},
															"value": "stargate"
														},
														{
															"expression": {
																"id": 1150,
																"name": "_sgData",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 978,
																"src": "6495:7:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_struct$_StargateData_$846_memory_ptr",
																	"typeString": "struct StargateFacet.StargateData memory"
																}
															},
															"id": 1151,
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "fromToken",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 833,
															"src": "6495:17:6",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"expression": {
																"id": 1152,
																"name": "_sgData",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 978,
																"src": "6526:7:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_struct$_StargateData_$846_memory_ptr",
																	"typeString": "struct StargateFacet.StargateData memory"
																}
															},
															"id": 1153,
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "toToken",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 835,
															"src": "6526:15:6",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"expression": {
																"id": 1154,
																"name": "msg",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4294967281,
																"src": "6555:3:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_magic_message",
																	"typeString": "msg"
																}
															},
															"id": 1155,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "sender",
															"nodeType": "MemberAccess",
															"src": "6555:10:6",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"expression": {
																"id": 1156,
																"name": "_sgData",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 978,
																"src": "6579:7:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_struct$_StargateData_$846_memory_ptr",
																	"typeString": "struct StargateFacet.StargateData memory"
																}
															},
															"id": 1157,
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "to",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 843,
															"src": "6579:10:6",
															"typeDescriptions": {
																"typeIdentifier": "t_address_payable",
																"typeString": "address payable"
															}
														},
														{
															"expression": {
																"id": 1158,
																"name": "_sgData",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 978,
																"src": "6603:7:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_struct$_StargateData_$846_memory_ptr",
																	"typeString": "struct StargateFacet.StargateData memory"
																}
															},
															"id": 1159,
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "qty",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 831,
															"src": "6603:11:6",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														{
															"expression": {
																"id": 1160,
																"name": "_sgData",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 978,
																"src": "6628:7:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_struct$_StargateData_$846_memory_ptr",
																	"typeString": "struct StargateFacet.StargateData memory"
																}
															},
															"id": 1161,
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "dstChainId",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 837,
															"src": "6628:18:6",
															"typeDescriptions": {
																"typeIdentifier": "t_uint16",
																"typeString": "uint16"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_stringliteral_6ba4f45f593ebc3b0035188aa4ba0c82f39a70f583863862aab89e6ae77de4d9",
																"typeString": "literal_string \"stargate\""
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_address_payable",
																"typeString": "address payable"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															{
																"typeIdentifier": "t_uint16",
																"typeString": "uint16"
															}
														],
														"id": 1148,
														"name": "SGTransferStarted",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 787,
														"src": "6440:17:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint16_$returns$__$",
															"typeString": "function (string memory,address,address,address,address,uint256,uint16)"
														}
													},
													"id": 1162,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "6440:216:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1163,
												"nodeType": "EmitStatement",
												"src": "6435:221:6"
											},
											{
												"expression": {
													"hexValue": "74727565",
													"id": 1164,
													"isConstant": false,
													"isLValue": false,
													"isPure": true,
													"kind": "bool",
													"lValueRequested": false,
													"nodeType": "Literal",
													"src": "6674:4:6",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													},
													"value": "true"
												},
												"functionReturnParameters": 984,
												"id": 1165,
												"nodeType": "Return",
												"src": "6667:11:6"
											}
										]
									},
									"documentation": {
										"id": 975,
										"nodeType": "StructuredDocumentation",
										"src": "4102:77:6",
										"text": "@param _sgData - struct containing information required to execute bridge"
									},
									"functionSelector": "6acf5e3f",
									"id": 1167,
									"implemented": true,
									"kind": "function",
									"modifiers": [
										{
											"id": 981,
											"kind": "modifierInvocation",
											"modifierName": {
												"id": 980,
												"name": "nonReentrant",
												"nodeType": "IdentifierPath",
												"referencedDeclaration": 1530,
												"src": "4278:12:6"
											},
											"nodeType": "ModifierInvocation",
											"src": "4278:12:6"
										}
									],
									"name": "sgBridgeTokens",
									"nameLocation": "4193:14:6",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 979,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 978,
												"mutability": "mutable",
												"name": "_sgData",
												"nameLocation": "4228:7:6",
												"nodeType": "VariableDeclaration",
												"scope": 1167,
												"src": "4208:27:6",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_struct$_StargateData_$846_memory_ptr",
													"typeString": "struct StargateFacet.StargateData"
												},
												"typeName": {
													"id": 977,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 976,
														"name": "StargateData",
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 846,
														"src": "4208:12:6"
													},
													"referencedDeclaration": 846,
													"src": "4208:12:6",
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_StargateData_$846_storage_ptr",
														"typeString": "struct StargateFacet.StargateData"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4207:29:6"
									},
									"returnParameters": {
										"id": 984,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 983,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 1167,
												"src": "4308:4:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 982,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "4308:4:6",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4307:6:6"
									},
									"scope": 1479,
									"src": "4184:2501:6",
									"stateMutability": "payable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"baseFunctions": [
										1599
									],
									"body": {
										"id": 1225,
										"nodeType": "Block",
										"src": "7245:316:6",
										"statements": [
											{
												"assignments": [
													1186
												],
												"declarations": [
													{
														"constant": false,
														"id": 1186,
														"mutability": "mutable",
														"name": "s",
														"nameLocation": "7271:1:6",
														"nodeType": "VariableDeclaration",
														"scope": 1225,
														"src": "7255:17:6",
														"stateVariable": false,
														"storageLocation": "storage",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
															"typeString": "struct StargateFacet.Storage"
														},
														"typeName": {
															"id": 1185,
															"nodeType": "UserDefinedTypeName",
															"pathNode": {
																"id": 1184,
																"name": "Storage",
																"nodeType": "IdentifierPath",
																"referencedDeclaration": 829,
																"src": "7255:7:6"
															},
															"referencedDeclaration": 829,
															"src": "7255:7:6",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
																"typeString": "struct StargateFacet.Storage"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 1189,
												"initialValue": {
													"arguments": [],
													"expression": {
														"argumentTypes": [],
														"id": 1187,
														"name": "getStorage",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1478,
														"src": "7275:10:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$829_storage_ptr_$",
															"typeString": "function () pure returns (struct StargateFacet.Storage storage pointer)"
														}
													},
													"id": 1188,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "7275:12:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
														"typeString": "struct StargateFacet.Storage storage pointer"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "7255:32:6"
											},
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													},
													"id": 1197,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"expression": {
															"id": 1190,
															"name": "msg",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 4294967281,
															"src": "7301:3:6",
															"typeDescriptions": {
																"typeIdentifier": "t_magic_message",
																"typeString": "msg"
															}
														},
														"id": 1191,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "sender",
														"nodeType": "MemberAccess",
														"src": "7301:10:6",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "!=",
													"rightExpression": {
														"arguments": [
															{
																"expression": {
																	"id": 1194,
																	"name": "s",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 1186,
																	"src": "7323:1:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
																		"typeString": "struct StargateFacet.Storage storage pointer"
																	}
																},
																"id": 1195,
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"memberName": "stargateRouter",
																"nodeType": "MemberAccess",
																"referencedDeclaration": 816,
																"src": "7323:16:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															],
															"id": 1193,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "7315:7:6",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_address_$",
																"typeString": "type(address)"
															},
															"typeName": {
																"id": 1192,
																"name": "address",
																"nodeType": "ElementaryTypeName",
																"src": "7315:7:6",
																"typeDescriptions": {}
															}
														},
														"id": 1196,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "typeConversion",
														"lValueRequested": false,
														"names": [],
														"nodeType": "FunctionCall",
														"src": "7315:25:6",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "7301:39:6",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 1201,
												"nodeType": "IfStatement",
												"src": "7297:89:6",
												"trueBody": {
													"errorCall": {
														"arguments": [],
														"expression": {
															"argumentTypes": [],
															"id": 1198,
															"name": "SenderNotStargateRouter",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 723,
															"src": "7361:23:6",
															"typeDescriptions": {
																"typeIdentifier": "t_function_error_pure$__$returns$__$",
																"typeString": "function () pure"
															}
														},
														"id": 1199,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "functionCall",
														"lValueRequested": false,
														"names": [],
														"nodeType": "FunctionCall",
														"src": "7361:25:6",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_tuple$__$",
															"typeString": "tuple()"
														}
													},
													"id": 1200,
													"nodeType": "RevertStatement",
													"src": "7354:32:6"
												}
											},
											{
												"assignments": [
													1203
												],
												"declarations": [
													{
														"constant": false,
														"id": 1203,
														"mutability": "mutable",
														"name": "_toAddr",
														"nameLocation": "7405:7:6",
														"nodeType": "VariableDeclaration",
														"scope": 1225,
														"src": "7397:15:6",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														},
														"typeName": {
															"id": 1202,
															"name": "address",
															"nodeType": "ElementaryTypeName",
															"src": "7397:7:6",
															"stateMutability": "nonpayable",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 1211,
												"initialValue": {
													"arguments": [
														{
															"id": 1206,
															"name": "_payload",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1180,
															"src": "7426:8:6",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														},
														{
															"components": [
																{
																	"id": 1208,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "7437:7:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_address_$",
																		"typeString": "type(address)"
																	},
																	"typeName": {
																		"id": 1207,
																		"name": "address",
																		"nodeType": "ElementaryTypeName",
																		"src": "7437:7:6",
																		"typeDescriptions": {}
																	}
																}
															],
															"id": 1209,
															"isConstant": false,
															"isInlineArray": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "TupleExpression",
															"src": "7436:9:6",
															"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": 1204,
															"name": "abi",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 4294967295,
															"src": "7415:3:6",
															"typeDescriptions": {
																"typeIdentifier": "t_magic_abi",
																"typeString": "abi"
															}
														},
														"id": 1205,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"lValueRequested": false,
														"memberName": "decode",
														"nodeType": "MemberAccess",
														"src": "7415:10:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
															"typeString": "function () pure"
														}
													},
													"id": 1210,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "7415:31:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_address_payable",
														"typeString": "address payable"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "7397:49:6"
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 1216,
															"name": "_toAddr",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1203,
															"src": "7480:7:6",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1217,
															"name": "amountLD",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1178,
															"src": "7489:8:6",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"expression": {
															"arguments": [
																{
																	"id": 1213,
																	"name": "_token",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 1176,
																	"src": "7463:6:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"id": 1212,
																"name": "IERC20",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 77,
																"src": "7456:6:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_contract$_IERC20_$77_$",
																	"typeString": "type(contract IERC20)"
																}
															},
															"id": 1214,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "7456:14:6",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_IERC20_$77",
																"typeString": "contract IERC20"
															}
														},
														"id": 1215,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "transfer",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 44,
														"src": "7456:23:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
															"typeString": "function (address,uint256) external returns (bool)"
														}
													},
													"id": 1218,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "7456:42:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 1219,
												"nodeType": "ExpressionStatement",
												"src": "7456:42:6"
											},
											{
												"eventCall": {
													"arguments": [
														{
															"id": 1221,
															"name": "_token",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1176,
															"src": "7537:6:6",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1222,
															"name": "amountLD",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1178,
															"src": "7545:8:6",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 1220,
														"name": "SGReceivedOnDestination",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 793,
														"src": "7513:23:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
															"typeString": "function (address,uint256)"
														}
													},
													"id": 1223,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "7513:41:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1224,
												"nodeType": "EmitStatement",
												"src": "7508:46:6"
											}
										]
									},
									"documentation": {
										"id": 1168,
										"nodeType": "StructuredDocumentation",
										"src": "6691:342:6",
										"text": "@param _chainId The remote chainId sending the tokens\n @param _srcAddress The remote Bridge address\n @param _nonce The message ordering nonce\n @param _token The token contract on the local chain\n @param amountLD The qty of local _token contract tokens\n @param _payload The bytes containing the toAddress"
									},
									"functionSelector": "ab8236f3",
									"id": 1226,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "sgReceive",
									"nameLocation": "7047:9:6",
									"nodeType": "FunctionDefinition",
									"overrides": {
										"id": 1182,
										"nodeType": "OverrideSpecifier",
										"overrides": [],
										"src": "7236:8:6"
									},
									"parameters": {
										"id": 1181,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1170,
												"mutability": "mutable",
												"name": "_chainId",
												"nameLocation": "7073:8:6",
												"nodeType": "VariableDeclaration",
												"scope": 1226,
												"src": "7066:15:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint16",
													"typeString": "uint16"
												},
												"typeName": {
													"id": 1169,
													"name": "uint16",
													"nodeType": "ElementaryTypeName",
													"src": "7066:6:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint16",
														"typeString": "uint16"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1172,
												"mutability": "mutable",
												"name": "_srcAddress",
												"nameLocation": "7104:11:6",
												"nodeType": "VariableDeclaration",
												"scope": 1226,
												"src": "7091:24:6",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 1171,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "7091:5:6",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1174,
												"mutability": "mutable",
												"name": "_nonce",
												"nameLocation": "7133:6:6",
												"nodeType": "VariableDeclaration",
												"scope": 1226,
												"src": "7125:14:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1173,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "7125:7:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1176,
												"mutability": "mutable",
												"name": "_token",
												"nameLocation": "7157:6:6",
												"nodeType": "VariableDeclaration",
												"scope": 1226,
												"src": "7149:14:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1175,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "7149:7:6",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1178,
												"mutability": "mutable",
												"name": "amountLD",
												"nameLocation": "7181:8:6",
												"nodeType": "VariableDeclaration",
												"scope": 1226,
												"src": "7173:16:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1177,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "7173:7:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1180,
												"mutability": "mutable",
												"name": "_payload",
												"nameLocation": "7212:8:6",
												"nodeType": "VariableDeclaration",
												"scope": 1226,
												"src": "7199:21:6",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 1179,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "7199:5:6",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "7056:170:6"
									},
									"returnParameters": {
										"id": 1183,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "7245:0:6"
									},
									"scope": 1479,
									"src": "7038:523:6",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"body": {
										"id": 1260,
										"nodeType": "Block",
										"src": "7707:371:6",
										"statements": [
											{
												"assignments": [
													1238,
													null
												],
												"declarations": [
													{
														"constant": false,
														"id": 1238,
														"mutability": "mutable",
														"name": "nativeFee",
														"nameLocation": "7726:9:6",
														"nodeType": "VariableDeclaration",
														"scope": 1260,
														"src": "7718:17:6",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 1237,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "7718:7:6",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													},
													null
												],
												"id": 1257,
												"initialValue": {
													"arguments": [
														{
															"id": 1243,
															"name": "_destChain",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1228,
															"src": "7797:10:6",
															"typeDescriptions": {
																"typeIdentifier": "t_uint16",
																"typeString": "uint16"
															}
														},
														{
															"hexValue": "31",
															"id": 1244,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "number",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "7845:1:6",
															"typeDescriptions": {
																"typeIdentifier": "t_rational_1_by_1",
																"typeString": "int_const 1"
															},
															"value": "1"
														},
														{
															"arguments": [
																{
																	"id": 1247,
																	"name": "_receiver",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 1230,
																	"src": "7889:9:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 1245,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "7872:3:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 1246,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodePacked",
																"nodeType": "MemberAccess",
																"src": "7872:16:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function () pure returns (bytes memory)"
																}
															},
															"id": 1248,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "7872:27:6",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														},
														{
															"hexValue": "3078",
															"id": 1249,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "7946:4:6",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837",
																"typeString": "literal_string \"0x\""
															},
															"value": "0x"
														},
														{
															"arguments": [
																{
																	"hexValue": "323030303030",
																	"id": 1252,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "8019:6:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_200000_by_1",
																		"typeString": "int_const 200000"
																	},
																	"value": "200000"
																},
																{
																	"hexValue": "30",
																	"id": 1253,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "8027:1:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_0_by_1",
																		"typeString": "int_const 0"
																	},
																	"value": "0"
																},
																{
																	"hexValue": "3078",
																	"id": 1254,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "8030:4:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837",
																		"typeString": "literal_string \"0x\""
																	},
																	"value": "0x"
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_rational_200000_by_1",
																		"typeString": "int_const 200000"
																	},
																	{
																		"typeIdentifier": "t_rational_0_by_1",
																		"typeString": "int_const 0"
																	},
																	{
																		"typeIdentifier": "t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837",
																		"typeString": "literal_string \"0x\""
																	}
																],
																"expression": {
																	"id": 1250,
																	"name": "IStargateRouter",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 1720,
																	"src": "7995:15:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_contract$_IStargateRouter_$1720_$",
																		"typeString": "type(contract IStargateRouter)"
																	}
																},
																"id": 1251,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"memberName": "lzTxObj",
																"nodeType": "MemberAccess",
																"referencedDeclaration": 1610,
																"src": "7995:23:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_struct$_lzTxObj_$1610_storage_ptr_$",
																	"typeString": "type(struct IStargateRouter.lzTxObj storage pointer)"
																}
															},
															"id": 1255,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "structConstructorCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "7995:40:6",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_lzTxObj_$1610_memory_ptr",
																"typeString": "struct IStargateRouter.lzTxObj memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_uint16",
																"typeString": "uint16"
															},
															{
																"typeIdentifier": "t_rational_1_by_1",
																"typeString": "int_const 1"
															},
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															},
															{
																"typeIdentifier": "t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837",
																"typeString": "literal_string \"0x\""
															},
															{
																"typeIdentifier": "t_struct$_lzTxObj_$1610_memory_ptr",
																"typeString": "struct IStargateRouter.lzTxObj memory"
															}
														],
														"expression": {
															"arguments": [
																{
																	"id": 1240,
																	"name": "_router",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 1232,
																	"src": "7757:7:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"id": 1239,
																"name": "IStargateRouter",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 1720,
																"src": "7741:15:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_contract$_IStargateRouter_$1720_$",
																	"typeString": "type(contract IStargateRouter)"
																}
															},
															"id": 1241,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "7741:24:6",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_IStargateRouter_$1720",
																"typeString": "contract IStargateRouter"
															}
														},
														"id": 1242,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "quoteLayerZeroFee",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 1719,
														"src": "7741:42:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_external_view$_t_uint16_$_t_uint8_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_struct$_lzTxObj_$1610_memory_ptr_$returns$_t_uint256_$_t_uint256_$",
															"typeString": "function (uint16,uint8,bytes memory,bytes memory,struct IStargateRouter.lzTxObj memory) view external returns (uint256,uint256)"
														}
													},
													"id": 1256,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "7741:304:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
														"typeString": "tuple(uint256,uint256)"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "7717:328:6"
											},
											{
												"expression": {
													"id": 1258,
													"name": "nativeFee",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 1238,
													"src": "8062:9:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"functionReturnParameters": 1236,
												"id": 1259,
												"nodeType": "Return",
												"src": "8055:16:6"
											}
										]
									},
									"functionSelector": "42d910c6",
									"id": 1261,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "sgCalculateFees",
									"nameLocation": "7576:15:6",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1233,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1228,
												"mutability": "mutable",
												"name": "_destChain",
												"nameLocation": "7608:10:6",
												"nodeType": "VariableDeclaration",
												"scope": 1261,
												"src": "7601:17:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint16",
													"typeString": "uint16"
												},
												"typeName": {
													"id": 1227,
													"name": "uint16",
													"nodeType": "ElementaryTypeName",
													"src": "7601:6:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint16",
														"typeString": "uint16"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1230,
												"mutability": "mutable",
												"name": "_receiver",
												"nameLocation": "7636:9:6",
												"nodeType": "VariableDeclaration",
												"scope": 1261,
												"src": "7628:17:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1229,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "7628:7:6",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1232,
												"mutability": "mutable",
												"name": "_router",
												"nameLocation": "7663:7:6",
												"nodeType": "VariableDeclaration",
												"scope": 1261,
												"src": "7655:15:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1231,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "7655:7:6",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "7591:85:6"
									},
									"returnParameters": {
										"id": 1236,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1235,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 1261,
												"src": "7698:7:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1234,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "7698:7:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "7697:9:6"
									},
									"scope": 1479,
									"src": "7567:511:6",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "public"
								},
								{
									"body": {
										"id": 1286,
										"nodeType": "Block",
										"src": "8155:144:6",
										"statements": [
											{
												"assignments": [
													1270
												],
												"declarations": [
													{
														"constant": false,
														"id": 1270,
														"mutability": "mutable",
														"name": "s",
														"nameLocation": "8181:1:6",
														"nodeType": "VariableDeclaration",
														"scope": 1286,
														"src": "8165:17:6",
														"stateVariable": false,
														"storageLocation": "storage",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
															"typeString": "struct StargateFacet.Storage"
														},
														"typeName": {
															"id": 1269,
															"nodeType": "UserDefinedTypeName",
															"pathNode": {
																"id": 1268,
																"name": "Storage",
																"nodeType": "IdentifierPath",
																"referencedDeclaration": 829,
																"src": "8165:7:6"
															},
															"referencedDeclaration": 829,
															"src": "8165:7:6",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
																"typeString": "struct StargateFacet.Storage"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 1273,
												"initialValue": {
													"arguments": [],
													"expression": {
														"argumentTypes": [],
														"id": 1271,
														"name": "getStorage",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1478,
														"src": "8185:10:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$829_storage_ptr_$",
															"typeString": "function () pure returns (struct StargateFacet.Storage storage pointer)"
														}
													},
													"id": 1272,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "8185:12:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
														"typeString": "struct StargateFacet.Storage storage pointer"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "8165:32:6"
											},
											{
												"expression": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 1284,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"components": [
															{
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 1280,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 1274,
																	"name": "_amount",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 1263,
																	"src": "8251:7:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "*",
																"rightExpression": {
																	"components": [
																		{
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 1278,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"hexValue": "3130303030",
																				"id": 1275,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "8262:5:6",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_10000_by_1",
																					"typeString": "int_const 10000"
																				},
																				"value": "10000"
																			},
																			"nodeType": "BinaryOperation",
																			"operator": "-",
																			"rightExpression": {
																				"expression": {
																					"id": 1276,
																					"name": "s",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 1270,
																					"src": "8270:1:6",
																					"typeDescriptions": {
																						"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
																						"typeString": "struct StargateFacet.Storage storage pointer"
																					}
																				},
																				"id": 1277,
																				"isConstant": false,
																				"isLValue": true,
																				"isPure": false,
																				"lValueRequested": false,
																				"memberName": "slippage",
																				"nodeType": "MemberAccess",
																				"referencedDeclaration": 822,
																				"src": "8270:10:6",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"src": "8262:18:6",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		}
																	],
																	"id": 1279,
																	"isConstant": false,
																	"isInlineArray": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"nodeType": "TupleExpression",
																	"src": "8261:20:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"src": "8251:30:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															}
														],
														"id": 1281,
														"isConstant": false,
														"isInlineArray": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"nodeType": "TupleExpression",
														"src": "8250:32:6",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "/",
													"rightExpression": {
														"components": [
															{
																"hexValue": "3130303030",
																"id": 1282,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "8286:5:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_10000_by_1",
																	"typeString": "int_const 10000"
																},
																"value": "10000"
															}
														],
														"id": 1283,
														"isConstant": false,
														"isInlineArray": false,
														"isLValue": false,
														"isPure": true,
														"lValueRequested": false,
														"nodeType": "TupleExpression",
														"src": "8285:7:6",
														"typeDescriptions": {
															"typeIdentifier": "t_rational_10000_by_1",
															"typeString": "int_const 10000"
														}
													},
													"src": "8250:42:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"functionReturnParameters": 1267,
												"id": 1285,
												"nodeType": "Return",
												"src": "8243:49:6"
											}
										]
									},
									"functionSelector": "618c3f29",
									"id": 1287,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "sgMinAmountOut",
									"nameLocation": "8093:14:6",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1264,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1263,
												"mutability": "mutable",
												"name": "_amount",
												"nameLocation": "8116:7:6",
												"nodeType": "VariableDeclaration",
												"scope": 1287,
												"src": "8108:15:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1262,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "8108:7:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "8107:17:6"
									},
									"returnParameters": {
										"id": 1267,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1266,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 1287,
												"src": "8146:7:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1265,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "8146:7:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "8145:9:6"
									},
									"scope": 1479,
									"src": "8084:215:6",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "public"
								},
								{
									"body": {
										"id": 1326,
										"nodeType": "Block",
										"src": "8359:261:6",
										"statements": [
											{
												"expression": {
													"arguments": [],
													"expression": {
														"argumentTypes": [],
														"expression": {
															"id": 1292,
															"name": "LibDiamond",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2554,
															"src": "8369:10:6",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_contract$_LibDiamond_$2554_$",
																"typeString": "type(library LibDiamond)"
															}
														},
														"id": 1294,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "enforceIsContractOwner",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 1832,
														"src": "8369:33:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$__$returns$__$",
															"typeString": "function () view"
														}
													},
													"id": 1295,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "8369:35:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1296,
												"nodeType": "ExpressionStatement",
												"src": "8369:35:6"
											},
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													},
													"id": 1302,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 1297,
														"name": "_newAddress",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1289,
														"src": "8418:11:6",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "==",
													"rightExpression": {
														"arguments": [
															{
																"hexValue": "30",
																"id": 1300,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "8441:1:6",
																"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": 1299,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "8433:7:6",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_address_$",
																"typeString": "type(address)"
															},
															"typeName": {
																"id": 1298,
																"name": "address",
																"nodeType": "ElementaryTypeName",
																"src": "8433:7:6",
																"typeDescriptions": {}
															}
														},
														"id": 1301,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "typeConversion",
														"lValueRequested": false,
														"names": [],
														"nodeType": "FunctionCall",
														"src": "8433:10:6",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "8418:25:6",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 1306,
												"nodeType": "IfStatement",
												"src": "8414:65:6",
												"trueBody": {
													"errorCall": {
														"arguments": [],
														"expression": {
															"argumentTypes": [],
															"id": 1303,
															"name": "StargateRouterAddressZero",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 727,
															"src": "8452:25:6",
															"typeDescriptions": {
																"typeIdentifier": "t_function_error_pure$__$returns$__$",
																"typeString": "function () pure"
															}
														},
														"id": 1304,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "functionCall",
														"lValueRequested": false,
														"names": [],
														"nodeType": "FunctionCall",
														"src": "8452:27:6",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_tuple$__$",
															"typeString": "tuple()"
														}
													},
													"id": 1305,
													"nodeType": "RevertStatement",
													"src": "8445:34:6"
												}
											},
											{
												"assignments": [
													1309
												],
												"declarations": [
													{
														"constant": false,
														"id": 1309,
														"mutability": "mutable",
														"name": "s",
														"nameLocation": "8505:1:6",
														"nodeType": "VariableDeclaration",
														"scope": 1326,
														"src": "8489:17:6",
														"stateVariable": false,
														"storageLocation": "storage",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
															"typeString": "struct StargateFacet.Storage"
														},
														"typeName": {
															"id": 1308,
															"nodeType": "UserDefinedTypeName",
															"pathNode": {
																"id": 1307,
																"name": "Storage",
																"nodeType": "IdentifierPath",
																"referencedDeclaration": 829,
																"src": "8489:7:6"
															},
															"referencedDeclaration": 829,
															"src": "8489:7:6",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
																"typeString": "struct StargateFacet.Storage"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 1312,
												"initialValue": {
													"arguments": [],
													"expression": {
														"argumentTypes": [],
														"id": 1310,
														"name": "getStorage",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1478,
														"src": "8509:10:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$829_storage_ptr_$",
															"typeString": "function () pure returns (struct StargateFacet.Storage storage pointer)"
														}
													},
													"id": 1311,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "8509:12:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
														"typeString": "struct StargateFacet.Storage storage pointer"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "8489:32:6"
											},
											{
												"expression": {
													"id": 1320,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"expression": {
															"id": 1313,
															"name": "s",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1309,
															"src": "8531:1:6",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
																"typeString": "struct StargateFacet.Storage storage pointer"
															}
														},
														"id": 1315,
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"memberName": "stargateRouter",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 816,
														"src": "8531:16:6",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"arguments": [
															{
																"id": 1318,
																"name": "_newAddress",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 1289,
																"src": "8558:11:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															}
														],
														"expression": {
															"argumentTypes": [
																{
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															],
															"id": 1317,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "8550:7:6",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_address_$",
																"typeString": "type(address)"
															},
															"typeName": {
																"id": 1316,
																"name": "address",
																"nodeType": "ElementaryTypeName",
																"src": "8550:7:6",
																"typeDescriptions": {}
															}
														},
														"id": 1319,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "typeConversion",
														"lValueRequested": false,
														"names": [],
														"nodeType": "FunctionCall",
														"src": "8550:20:6",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "8531:39:6",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"id": 1321,
												"nodeType": "ExpressionStatement",
												"src": "8531:39:6"
											},
											{
												"eventCall": {
													"arguments": [
														{
															"id": 1323,
															"name": "_newAddress",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1289,
															"src": "8601:11:6",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														],
														"id": 1322,
														"name": "SGUpdatedRouter",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 797,
														"src": "8585:15:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
															"typeString": "function (address)"
														}
													},
													"id": 1324,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "8585:28:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1325,
												"nodeType": "EmitStatement",
												"src": "8580:33:6"
											}
										]
									},
									"functionSelector": "4be85c35",
									"id": 1327,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "sgUpdateRouter",
									"nameLocation": "8314:14:6",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1290,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1289,
												"mutability": "mutable",
												"name": "_newAddress",
												"nameLocation": "8337:11:6",
												"nodeType": "VariableDeclaration",
												"scope": 1327,
												"src": "8329:19:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1288,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "8329:7:6",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "8328:21:6"
									},
									"returnParameters": {
										"id": 1291,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "8359:0:6"
									},
									"scope": 1479,
									"src": "8305:315:6",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"body": {
										"id": 1353,
										"nodeType": "Block",
										"src": "8692:184:6",
										"statements": [
											{
												"expression": {
													"arguments": [],
													"expression": {
														"argumentTypes": [],
														"expression": {
															"id": 1332,
															"name": "LibDiamond",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2554,
															"src": "8702:10:6",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_contract$_LibDiamond_$2554_$",
																"typeString": "type(library LibDiamond)"
															}
														},
														"id": 1334,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "enforceIsContractOwner",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 1832,
														"src": "8702:33:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$__$returns$__$",
															"typeString": "function () view"
														}
													},
													"id": 1335,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "8702:35:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1336,
												"nodeType": "ExpressionStatement",
												"src": "8702:35:6"
											},
											{
												"assignments": [
													1339
												],
												"declarations": [
													{
														"constant": false,
														"id": 1339,
														"mutability": "mutable",
														"name": "s",
														"nameLocation": "8763:1:6",
														"nodeType": "VariableDeclaration",
														"scope": 1353,
														"src": "8747:17:6",
														"stateVariable": false,
														"storageLocation": "storage",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
															"typeString": "struct StargateFacet.Storage"
														},
														"typeName": {
															"id": 1338,
															"nodeType": "UserDefinedTypeName",
															"pathNode": {
																"id": 1337,
																"name": "Storage",
																"nodeType": "IdentifierPath",
																"referencedDeclaration": 829,
																"src": "8747:7:6"
															},
															"referencedDeclaration": 829,
															"src": "8747:7:6",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
																"typeString": "struct StargateFacet.Storage"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 1342,
												"initialValue": {
													"arguments": [],
													"expression": {
														"argumentTypes": [],
														"id": 1340,
														"name": "getStorage",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1478,
														"src": "8767:10:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$829_storage_ptr_$",
															"typeString": "function () pure returns (struct StargateFacet.Storage storage pointer)"
														}
													},
													"id": 1341,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "8767:12:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
														"typeString": "struct StargateFacet.Storage storage pointer"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "8747:32:6"
											},
											{
												"expression": {
													"id": 1347,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"expression": {
															"id": 1343,
															"name": "s",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1339,
															"src": "8789:1:6",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
																"typeString": "struct StargateFacet.Storage storage pointer"
															}
														},
														"id": 1345,
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"memberName": "slippage",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 822,
														"src": "8789:10:6",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"id": 1346,
														"name": "_newSlippage",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1329,
														"src": "8802:12:6",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "8789:25:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"id": 1348,
												"nodeType": "ExpressionStatement",
												"src": "8789:25:6"
											},
											{
												"eventCall": {
													"arguments": [
														{
															"id": 1350,
															"name": "_newSlippage",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1329,
															"src": "8856:12:6",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 1349,
														"name": "SGUpdatedSlippageTolerance",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 801,
														"src": "8829:26:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
															"typeString": "function (uint256)"
														}
													},
													"id": 1351,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "8829:40:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1352,
												"nodeType": "EmitStatement",
												"src": "8824:45:6"
											}
										]
									},
									"functionSelector": "217aabb7",
									"id": 1354,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "sgUpdateSlippageTolerance",
									"nameLocation": "8635:25:6",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1330,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1329,
												"mutability": "mutable",
												"name": "_newSlippage",
												"nameLocation": "8669:12:6",
												"nodeType": "VariableDeclaration",
												"scope": 1354,
												"src": "8661:20:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1328,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "8661:7:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "8660:22:6"
									},
									"returnParameters": {
										"id": 1331,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "8692:0:6"
									},
									"scope": 1479,
									"src": "8626:250:6",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"body": {
										"id": 1393,
										"nodeType": "Block",
										"src": "9010:184:6",
										"statements": [
											{
												"expression": {
													"arguments": [],
													"expression": {
														"argumentTypes": [],
														"expression": {
															"id": 1365,
															"name": "LibDiamond",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2554,
															"src": "9020:10:6",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_contract$_LibDiamond_$2554_$",
																"typeString": "type(library LibDiamond)"
															}
														},
														"id": 1367,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "enforceIsContractOwner",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 1832,
														"src": "9020:33:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$__$returns$__$",
															"typeString": "function () view"
														}
													},
													"id": 1368,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "9020:35:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1369,
												"nodeType": "ExpressionStatement",
												"src": "9020:35:6"
											},
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"id": 1376,
																	"name": "this",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967268,
																	"src": "9100:4:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_contract$_StargateFacet_$1479",
																		"typeString": "contract StargateFacet"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_contract$_StargateFacet_$1479",
																		"typeString": "contract StargateFacet"
																	}
																],
																"id": 1375,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "9092:7:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_address_$",
																	"typeString": "type(address)"
																},
																"typeName": {
																	"id": 1374,
																	"name": "address",
																	"nodeType": "ElementaryTypeName",
																	"src": "9092:7:6",
																	"typeDescriptions": {}
																}
															},
															"id": 1377,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "9092:13:6",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1378,
															"name": "_amount",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1360,
															"src": "9107:7:6",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"expression": {
															"arguments": [
																{
																	"id": 1371,
																	"name": "_token",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 1356,
																	"src": "9072:6:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"id": 1370,
																"name": "IERC20",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 77,
																"src": "9065:6:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_contract$_IERC20_$77_$",
																	"typeString": "type(contract IERC20)"
																}
															},
															"id": 1372,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "9065:14:6",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_IERC20_$77",
																"typeString": "contract IERC20"
															}
														},
														"id": 1373,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "safeApprove",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 215,
														"src": "9065:26:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$77_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$77_$",
															"typeString": "function (contract IERC20,address,uint256)"
														}
													},
													"id": 1379,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "9065:50:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1380,
												"nodeType": "ExpressionStatement",
												"src": "9065:50:6"
											},
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"id": 1387,
																	"name": "this",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967268,
																	"src": "9165:4:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_contract$_StargateFacet_$1479",
																		"typeString": "contract StargateFacet"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_contract$_StargateFacet_$1479",
																		"typeString": "contract StargateFacet"
																	}
																],
																"id": 1386,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"nodeType": "ElementaryTypeNameExpression",
																"src": "9157:7:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_address_$",
																	"typeString": "type(address)"
																},
																"typeName": {
																	"id": 1385,
																	"name": "address",
																	"nodeType": "ElementaryTypeName",
																	"src": "9157:7:6",
																	"typeDescriptions": {}
																}
															},
															"id": 1388,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "9157:13:6",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1389,
															"name": "_user",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1358,
															"src": "9172:5:6",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1390,
															"name": "_amount",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1360,
															"src": "9179:7:6",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"expression": {
															"arguments": [
																{
																	"id": 1382,
																	"name": "_token",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 1356,
																	"src": "9132:6:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"id": 1381,
																"name": "IERC20",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 77,
																"src": "9125:6:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_type$_t_contract$_IERC20_$77_$",
																	"typeString": "type(contract IERC20)"
																}
															},
															"id": 1383,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "typeConversion",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "9125:14:6",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_contract$_IERC20_$77",
																"typeString": "contract IERC20"
															}
														},
														"id": 1384,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "safeTransferFrom",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 171,
														"src": "9125:31:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$77_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$77_$",
															"typeString": "function (contract IERC20,address,address,uint256)"
														}
													},
													"id": 1391,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "9125:62:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1392,
												"nodeType": "ExpressionStatement",
												"src": "9125:62:6"
											}
										]
									},
									"functionSelector": "c722a336",
									"id": 1394,
									"implemented": true,
									"kind": "function",
									"modifiers": [
										{
											"id": 1363,
											"kind": "modifierInvocation",
											"modifierName": {
												"id": 1362,
												"name": "nonReentrant",
												"nodeType": "IdentifierPath",
												"referencedDeclaration": 1530,
												"src": "8997:12:6"
											},
											"nodeType": "ModifierInvocation",
											"src": "8997:12:6"
										}
									],
									"name": "sgWithdraw",
									"nameLocation": "8891:10:6",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1361,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1356,
												"mutability": "mutable",
												"name": "_token",
												"nameLocation": "8919:6:6",
												"nodeType": "VariableDeclaration",
												"scope": 1394,
												"src": "8911:14:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1355,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "8911:7:6",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1358,
												"mutability": "mutable",
												"name": "_user",
												"nameLocation": "8943:5:6",
												"nodeType": "VariableDeclaration",
												"scope": 1394,
												"src": "8935:13:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1357,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "8935:7:6",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1360,
												"mutability": "mutable",
												"name": "_amount",
												"nameLocation": "8966:7:6",
												"nodeType": "VariableDeclaration",
												"scope": 1394,
												"src": "8958:15:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1359,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "8958:7:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "8901:78:6"
									},
									"returnParameters": {
										"id": 1364,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "9010:0:6"
									},
									"scope": 1479,
									"src": "8882:312:6",
									"stateMutability": "payable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"body": {
										"id": 1430,
										"nodeType": "Block",
										"src": "9306:194:6",
										"statements": [
											{
												"expression": {
													"arguments": [],
													"expression": {
														"argumentTypes": [],
														"expression": {
															"id": 1403,
															"name": "LibDiamond",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2554,
															"src": "9316:10:6",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_contract$_LibDiamond_$2554_$",
																"typeString": "type(library LibDiamond)"
															}
														},
														"id": 1405,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "enforceIsContractOwner",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 1832,
														"src": "9316:33:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$__$returns$__$",
															"typeString": "function () view"
														}
													},
													"id": 1406,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "9316:35:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1407,
												"nodeType": "ExpressionStatement",
												"src": "9316:35:6"
											},
											{
												"assignments": [
													1410
												],
												"declarations": [
													{
														"constant": false,
														"id": 1410,
														"mutability": "mutable",
														"name": "s",
														"nameLocation": "9377:1:6",
														"nodeType": "VariableDeclaration",
														"scope": 1430,
														"src": "9361:17:6",
														"stateVariable": false,
														"storageLocation": "storage",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
															"typeString": "struct StargateFacet.Storage"
														},
														"typeName": {
															"id": 1409,
															"nodeType": "UserDefinedTypeName",
															"pathNode": {
																"id": 1408,
																"name": "Storage",
																"nodeType": "IdentifierPath",
																"referencedDeclaration": 829,
																"src": "9361:7:6"
															},
															"referencedDeclaration": 829,
															"src": "9361:7:6",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
																"typeString": "struct StargateFacet.Storage"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 1413,
												"initialValue": {
													"arguments": [],
													"expression": {
														"argumentTypes": [],
														"id": 1411,
														"name": "getStorage",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1478,
														"src": "9381:10:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$829_storage_ptr_$",
															"typeString": "function () pure returns (struct StargateFacet.Storage storage pointer)"
														}
													},
													"id": 1412,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "9381:12:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
														"typeString": "struct StargateFacet.Storage storage pointer"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "9361:32:6"
											},
											{
												"expression": {
													"id": 1422,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"baseExpression": {
															"baseExpression": {
																"expression": {
																	"id": 1414,
																	"name": "s",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 1410,
																	"src": "9403:1:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
																		"typeString": "struct StargateFacet.Storage storage pointer"
																	}
																},
																"id": 1418,
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"memberName": "poolIds",
																"nodeType": "MemberAccess",
																"referencedDeclaration": 828,
																"src": "9403:9:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_uint256_$_$",
																	"typeString": "mapping(uint16 => mapping(address => uint256))"
																}
															},
															"id": 1419,
															"indexExpression": {
																"id": 1416,
																"name": "_chainId",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 1396,
																"src": "9413:8:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint16",
																	"typeString": "uint16"
																}
															},
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"nodeType": "IndexAccess",
															"src": "9403:19:6",
															"typeDescriptions": {
																"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
																"typeString": "mapping(address => uint256)"
															}
														},
														"id": 1420,
														"indexExpression": {
															"id": 1417,
															"name": "_token",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1398,
															"src": "9423:6:6",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"nodeType": "IndexAccess",
														"src": "9403:27:6",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"id": 1421,
														"name": "_poolId",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1400,
														"src": "9433:7:6",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "9403:37:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"id": 1423,
												"nodeType": "ExpressionStatement",
												"src": "9403:37:6"
											},
											{
												"eventCall": {
													"arguments": [
														{
															"id": 1425,
															"name": "_chainId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1396,
															"src": "9467:8:6",
															"typeDescriptions": {
																"typeIdentifier": "t_uint16",
																"typeString": "uint16"
															}
														},
														{
															"id": 1426,
															"name": "_token",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1398,
															"src": "9477:6:6",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1427,
															"name": "_poolId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1400,
															"src": "9485:7:6",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_uint16",
																"typeString": "uint16"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 1424,
														"name": "SGAddedPool",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 809,
														"src": "9455:11:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_event_nonpayable$_t_uint16_$_t_address_$_t_uint256_$returns$__$",
															"typeString": "function (uint16,address,uint256)"
														}
													},
													"id": 1428,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "9455:38:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1429,
												"nodeType": "EmitStatement",
												"src": "9450:43:6"
											}
										]
									},
									"functionSelector": "2aad46e3",
									"id": 1431,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "sgAddPool",
									"nameLocation": "9209:9:6",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1401,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1396,
												"mutability": "mutable",
												"name": "_chainId",
												"nameLocation": "9235:8:6",
												"nodeType": "VariableDeclaration",
												"scope": 1431,
												"src": "9228:15:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint16",
													"typeString": "uint16"
												},
												"typeName": {
													"id": 1395,
													"name": "uint16",
													"nodeType": "ElementaryTypeName",
													"src": "9228:6:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint16",
														"typeString": "uint16"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1398,
												"mutability": "mutable",
												"name": "_token",
												"nameLocation": "9261:6:6",
												"nodeType": "VariableDeclaration",
												"scope": 1431,
												"src": "9253:14:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1397,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "9253:7:6",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1400,
												"mutability": "mutable",
												"name": "_poolId",
												"nameLocation": "9285:7:6",
												"nodeType": "VariableDeclaration",
												"scope": 1431,
												"src": "9277:15:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1399,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "9277:7:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "9218:80:6"
									},
									"returnParameters": {
										"id": 1402,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "9306:0:6"
									},
									"scope": 1479,
									"src": "9200:300:6",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "public"
								},
								{
									"body": {
										"id": 1460,
										"nodeType": "Block",
										"src": "9636:119:6",
										"statements": [
											{
												"assignments": [
													1444
												],
												"declarations": [
													{
														"constant": false,
														"id": 1444,
														"mutability": "mutable",
														"name": "s",
														"nameLocation": "9662:1:6",
														"nodeType": "VariableDeclaration",
														"scope": 1460,
														"src": "9646:17:6",
														"stateVariable": false,
														"storageLocation": "storage",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
															"typeString": "struct StargateFacet.Storage"
														},
														"typeName": {
															"id": 1443,
															"nodeType": "UserDefinedTypeName",
															"pathNode": {
																"id": 1442,
																"name": "Storage",
																"nodeType": "IdentifierPath",
																"referencedDeclaration": 829,
																"src": "9646:7:6"
															},
															"referencedDeclaration": 829,
															"src": "9646:7:6",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
																"typeString": "struct StargateFacet.Storage"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 1447,
												"initialValue": {
													"arguments": [],
													"expression": {
														"argumentTypes": [],
														"id": 1445,
														"name": "getStorage",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1478,
														"src": "9666:10:6",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Storage_$829_storage_ptr_$",
															"typeString": "function () pure returns (struct StargateFacet.Storage storage pointer)"
														}
													},
													"id": 1446,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "9666:12:6",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
														"typeString": "struct StargateFacet.Storage storage pointer"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "9646:32:6"
											},
											{
												"expression": {
													"condition": {
														"commonType": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"id": 1455,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"baseExpression": {
																"baseExpression": {
																	"expression": {
																		"id": 1448,
																		"name": "s",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 1444,
																		"src": "9695:1:6",
																		"typeDescriptions": {
																			"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
																			"typeString": "struct StargateFacet.Storage storage pointer"
																		}
																	},
																	"id": 1449,
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberName": "poolIds",
																	"nodeType": "MemberAccess",
																	"referencedDeclaration": 828,
																	"src": "9695:9:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_mapping$_t_uint16_$_t_mapping$_t_address_$_t_uint256_$_$",
																		"typeString": "mapping(uint16 => mapping(address => uint256))"
																	}
																},
																"id": 1451,
																"indexExpression": {
																	"id": 1450,
																	"name": "_chainId",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 1433,
																	"src": "9705:8:6",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint16",
																		"typeString": "uint16"
																	}
																},
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "IndexAccess",
																"src": "9695:19:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
																	"typeString": "mapping(address => uint256)"
																}
															},
															"id": 1453,
															"indexExpression": {
																"id": 1452,
																"name": "_token",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 1435,
																"src": "9715:6:6",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"nodeType": "IndexAccess",
															"src": "9695:27:6",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": "==",
														"rightExpression": {
															"id": 1454,
															"name": "_poolId",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1437,
															"src": "9726:7:6",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"src": "9695:38:6",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														}
													},
													"falseExpression": {
														"hexValue": "66616c7365",
														"id": 1457,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "bool",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "9743:5:6",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														},
														"value": "false"
													},
													"id": 1458,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "Conditional",
													"src": "9695:53:6",
													"trueExpression": {
														"hexValue": "74727565",
														"id": 1456,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "bool",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "9736:4:6",
														"typeDescriptions": {
															"typeIdentifier": "t_bool",
															"typeString": "bool"
														},
														"value": "true"
													},
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"functionReturnParameters": 1441,
												"id": 1459,
												"nodeType": "Return",
												"src": "9688:60:6"
											}
										]
									},
									"functionSelector": "90f12364",
									"id": 1461,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "sgCheckPoolId",
									"nameLocation": "9515:13:6",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1438,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1433,
												"mutability": "mutable",
												"name": "_chainId",
												"nameLocation": "9545:8:6",
												"nodeType": "VariableDeclaration",
												"scope": 1461,
												"src": "9538:15:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint16",
													"typeString": "uint16"
												},
												"typeName": {
													"id": 1432,
													"name": "uint16",
													"nodeType": "ElementaryTypeName",
													"src": "9538:6:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint16",
														"typeString": "uint16"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1435,
												"mutability": "mutable",
												"name": "_token",
												"nameLocation": "9571:6:6",
												"nodeType": "VariableDeclaration",
												"scope": 1461,
												"src": "9563:14:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1434,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "9563:7:6",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1437,
												"mutability": "mutable",
												"name": "_poolId",
												"nameLocation": "9595:7:6",
												"nodeType": "VariableDeclaration",
												"scope": 1461,
												"src": "9587:15:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1436,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "9587:7:6",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "9528:80:6"
									},
									"returnParameters": {
										"id": 1441,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1440,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 1461,
												"src": "9630:4:6",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 1439,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "9630:4:6",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "9629:6:6"
									},
									"scope": 1479,
									"src": "9506:249:6",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "public"
								},
								{
									"body": {
										"id": 1464,
										"nodeType": "Block",
										"src": "9788:2:6",
										"statements": []
									},
									"id": 1465,
									"implemented": true,
									"kind": "receive",
									"modifiers": [],
									"name": "",
									"nameLocation": "-1:-1:-1",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1462,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "9768:2:6"
									},
									"returnParameters": {
										"id": 1463,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "9788:0:6"
									},
									"scope": 1479,
									"src": "9761:29:6",
									"stateMutability": "payable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"body": {
										"id": 1477,
										"nodeType": "Block",
										"src": "10094:163:6",
										"statements": [
											{
												"assignments": [
													1473
												],
												"declarations": [
													{
														"constant": false,
														"id": 1473,
														"mutability": "mutable",
														"name": "namespace",
														"nameLocation": "10112:9:6",
														"nodeType": "VariableDeclaration",
														"scope": 1477,
														"src": "10104:17:6",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_bytes32",
															"typeString": "bytes32"
														},
														"typeName": {
															"id": 1472,
															"name": "bytes32",
															"nodeType": "ElementaryTypeName",
															"src": "10104:7:6",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 1475,
												"initialValue": {
													"id": 1474,
													"name": "NAMESPACE",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 814,
													"src": "10124:9:6",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "10104:29:6"
											},
											{
												"AST": {
													"nodeType": "YulBlock",
													"src": "10208:43:6",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "10222:19:6",
															"value": {
																"name": "namespace",
																"nodeType": "YulIdentifier",
																"src": "10232:9:6"
															},
															"variableNames": [
																{
																	"name": "s.slot",
																	"nodeType": "YulIdentifier",
																	"src": "10222:6:6"
																}
															]
														}
													]
												},
												"evmVersion": "istanbul",
												"externalReferences": [
													{
														"declaration": 1473,
														"isOffset": false,
														"isSlot": false,
														"src": "10232:9:6",
														"valueSize": 1
													},
													{
														"declaration": 1470,
														"isOffset": false,
														"isSlot": true,
														"src": "10222:6:6",
														"suffix": "slot",
														"valueSize": 1
													}
												],
												"id": 1476,
												"nodeType": "InlineAssembly",
												"src": "10199:52:6"
											}
										]
									},
									"documentation": {
										"id": 1466,
										"nodeType": "StructuredDocumentation",
										"src": "9998:28:6",
										"text": "@dev fetch local storage"
									},
									"id": 1478,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "getStorage",
									"nameLocation": "10040:10:6",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1467,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "10050:2:6"
									},
									"returnParameters": {
										"id": 1471,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1470,
												"mutability": "mutable",
												"name": "s",
												"nameLocation": "10091:1:6",
												"nodeType": "VariableDeclaration",
												"scope": 1478,
												"src": "10075:17:6",
												"stateVariable": false,
												"storageLocation": "storage",
												"typeDescriptions": {
													"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
													"typeString": "struct StargateFacet.Storage"
												},
												"typeName": {
													"id": 1469,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 1468,
														"name": "Storage",
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 829,
														"src": "10075:7:6"
													},
													"referencedDeclaration": 829,
													"src": "10075:7:6",
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_Storage_$829_storage_ptr",
														"typeString": "struct StargateFacet.Storage"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "10074:19:6"
									},
									"scope": 1479,
									"src": "10031:226:6",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "private"
								}
							],
							"scope": 1480,
							"src": "910:9349:6",
							"usedErrors": [
								693,
								719,
								723,
								725,
								727,
								729,
								731,
								1492
							]
						}
					],
					"src": "32:10228:6"
				},
				"id": 6
			},
			"bridges/helpers/ReentrancyGuard.sol": {
				"ast": {
					"absolutePath": "bridges/helpers/ReentrancyGuard.sol",
					"exportedSymbols": {
						"ReentrancyGuard": [
							1544
						]
					},
					"id": 1545,
					"license": "UNLICENSED",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 1481,
							"literals": [
								"solidity",
								"0.8",
								".4"
							],
							"nodeType": "PragmaDirective",
							"src": "39:22:7"
						},
						{
							"abstract": true,
							"baseContracts": [],
							"contractDependencies": [],
							"contractKind": "contract",
							"documentation": {
								"id": 1482,
								"nodeType": "StructuredDocumentation",
								"src": "63:133:7",
								"text": "@title Reentrancy Guard\n @author LI.FI (https://li.fi)\n @notice Abstract contract to provide protection against reentrancy"
							},
							"fullyImplemented": true,
							"id": 1544,
							"linearizedBaseContracts": [
								1544
							],
							"name": "ReentrancyGuard",
							"nameLocation": "214:15:7",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"constant": true,
									"documentation": {
										"id": 1483,
										"nodeType": "StructuredDocumentation",
										"src": "236:16:7",
										"text": "Storage ///"
									},
									"id": 1486,
									"mutability": "constant",
									"name": "NAMESPACE",
									"nameLocation": "282:9:7",
									"nodeType": "VariableDeclaration",
									"scope": 1544,
									"src": "257:114:7",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_bytes32",
										"typeString": "bytes32"
									},
									"typeName": {
										"id": 1484,
										"name": "bytes32",
										"nodeType": "ElementaryTypeName",
										"src": "257:7:7",
										"typeDescriptions": {
											"typeIdentifier": "t_bytes32",
											"typeString": "bytes32"
										}
									},
									"value": {
										"hexValue": "a65bb2f450488ab0858c00edc14abc5297769bf42adb48cfb77752890e8b697b",
										"id": 1485,
										"isConstant": false,
										"isLValue": false,
										"isPure": true,
										"kind": "hexString",
										"lValueRequested": false,
										"nodeType": "Literal",
										"src": "302:69:7",
										"typeDescriptions": {
											"typeIdentifier": "t_stringliteral_3f630fdab3c4a0750e01c3361d9bfd1a300e0b0c8f708b57a6a04fc7bb514b16",
											"typeString": "literal_string hex\"a65bb2f450488ab0858c00edc14abc5297769bf42adb48cfb77752890e8b697b\""
										}
									},
									"visibility": "private"
								},
								{
									"canonicalName": "ReentrancyGuard.ReentrancyStorage",
									"id": 1489,
									"members": [
										{
											"constant": false,
											"id": 1488,
											"mutability": "mutable",
											"name": "status",
											"nameLocation": "440:6:7",
											"nodeType": "VariableDeclaration",
											"scope": 1489,
											"src": "432:14:7",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 1487,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "432:7:7",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										}
									],
									"name": "ReentrancyStorage",
									"nameLocation": "404:17:7",
									"nodeType": "StructDefinition",
									"scope": 1544,
									"src": "397:56:7",
									"visibility": "public"
								},
								{
									"documentation": {
										"id": 1490,
										"nodeType": "StructuredDocumentation",
										"src": "459:15:7",
										"text": "Errors ///"
									},
									"id": 1492,
									"name": "ReentrancyError",
									"nameLocation": "485:15:7",
									"nodeType": "ErrorDefinition",
									"parameters": {
										"id": 1491,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "500:2:7"
									},
									"src": "479:24:7"
								},
								{
									"constant": true,
									"documentation": {
										"id": 1493,
										"nodeType": "StructuredDocumentation",
										"src": "509:18:7",
										"text": "Constants ///"
									},
									"id": 1496,
									"mutability": "constant",
									"name": "_NOT_ENTERED",
									"nameLocation": "557:12:7",
									"nodeType": "VariableDeclaration",
									"scope": 1544,
									"src": "532:41:7",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_uint256",
										"typeString": "uint256"
									},
									"typeName": {
										"id": 1494,
										"name": "uint256",
										"nodeType": "ElementaryTypeName",
										"src": "532:7:7",
										"typeDescriptions": {
											"typeIdentifier": "t_uint256",
											"typeString": "uint256"
										}
									},
									"value": {
										"hexValue": "30",
										"id": 1495,
										"isConstant": false,
										"isLValue": false,
										"isPure": true,
										"kind": "number",
										"lValueRequested": false,
										"nodeType": "Literal",
										"src": "572:1:7",
										"typeDescriptions": {
											"typeIdentifier": "t_rational_0_by_1",
											"typeString": "int_const 0"
										},
										"value": "0"
									},
									"visibility": "private"
								},
								{
									"constant": true,
									"id": 1499,
									"mutability": "constant",
									"name": "_ENTERED",
									"nameLocation": "604:8:7",
									"nodeType": "VariableDeclaration",
									"scope": 1544,
									"src": "579:37:7",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_uint256",
										"typeString": "uint256"
									},
									"typeName": {
										"id": 1497,
										"name": "uint256",
										"nodeType": "ElementaryTypeName",
										"src": "579:7:7",
										"typeDescriptions": {
											"typeIdentifier": "t_uint256",
											"typeString": "uint256"
										}
									},
									"value": {
										"hexValue": "31",
										"id": 1498,
										"isConstant": false,
										"isLValue": false,
										"isPure": true,
										"kind": "number",
										"lValueRequested": false,
										"nodeType": "Literal",
										"src": "615:1:7",
										"typeDescriptions": {
											"typeIdentifier": "t_rational_1_by_1",
											"typeString": "int_const 1"
										},
										"value": "1"
									},
									"visibility": "private"
								},
								{
									"body": {
										"id": 1529,
										"nodeType": "Block",
										"src": "670:199:7",
										"statements": [
											{
												"assignments": [
													1504
												],
												"declarations": [
													{
														"constant": false,
														"id": 1504,
														"mutability": "mutable",
														"name": "s",
														"nameLocation": "706:1:7",
														"nodeType": "VariableDeclaration",
														"scope": 1529,
														"src": "680:27:7",
														"stateVariable": false,
														"storageLocation": "storage",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_ReentrancyStorage_$1489_storage_ptr",
															"typeString": "struct ReentrancyGuard.ReentrancyStorage"
														},
														"typeName": {
															"id": 1503,
															"nodeType": "UserDefinedTypeName",
															"pathNode": {
																"id": 1502,
																"name": "ReentrancyStorage",
																"nodeType": "IdentifierPath",
																"referencedDeclaration": 1489,
																"src": "680:17:7"
															},
															"referencedDeclaration": 1489,
															"src": "680:17:7",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_ReentrancyStorage_$1489_storage_ptr",
																"typeString": "struct ReentrancyGuard.ReentrancyStorage"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 1507,
												"initialValue": {
													"arguments": [],
													"expression": {
														"argumentTypes": [],
														"id": 1505,
														"name": "reentrancyStorage",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1543,
														"src": "710:17:7",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_ReentrancyStorage_$1489_storage_ptr_$",
															"typeString": "function () pure returns (struct ReentrancyGuard.ReentrancyStorage storage pointer)"
														}
													},
													"id": 1506,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "710:19:7",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_ReentrancyStorage_$1489_storage_ptr",
														"typeString": "struct ReentrancyGuard.ReentrancyStorage storage pointer"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "680:49:7"
											},
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 1511,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"expression": {
															"id": 1508,
															"name": "s",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1504,
															"src": "743:1:7",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_ReentrancyStorage_$1489_storage_ptr",
																"typeString": "struct ReentrancyGuard.ReentrancyStorage storage pointer"
															}
														},
														"id": 1509,
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "status",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 1488,
														"src": "743:8:7",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "==",
													"rightExpression": {
														"id": 1510,
														"name": "_ENTERED",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1499,
														"src": "755:8:7",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "743:20:7",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 1515,
												"nodeType": "IfStatement",
												"src": "739:50:7",
												"trueBody": {
													"errorCall": {
														"arguments": [],
														"expression": {
															"argumentTypes": [],
															"id": 1512,
															"name": "ReentrancyError",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1492,
															"src": "772:15:7",
															"typeDescriptions": {
																"typeIdentifier": "t_function_error_pure$__$returns$__$",
																"typeString": "function () pure"
															}
														},
														"id": 1513,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"kind": "functionCall",
														"lValueRequested": false,
														"names": [],
														"nodeType": "FunctionCall",
														"src": "772:17:7",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_tuple$__$",
															"typeString": "tuple()"
														}
													},
													"id": 1514,
													"nodeType": "RevertStatement",
													"src": "765:24:7"
												}
											},
											{
												"expression": {
													"id": 1520,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"expression": {
															"id": 1516,
															"name": "s",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1504,
															"src": "799:1:7",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_ReentrancyStorage_$1489_storage_ptr",
																"typeString": "struct ReentrancyGuard.ReentrancyStorage storage pointer"
															}
														},
														"id": 1518,
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"memberName": "status",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 1488,
														"src": "799:8:7",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"id": 1519,
														"name": "_ENTERED",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1499,
														"src": "810:8:7",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "799:19:7",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"id": 1521,
												"nodeType": "ExpressionStatement",
												"src": "799:19:7"
											},
											{
												"id": 1522,
												"nodeType": "PlaceholderStatement",
												"src": "828:1:7"
											},
											{
												"expression": {
													"id": 1527,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"expression": {
															"id": 1523,
															"name": "s",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1504,
															"src": "839:1:7",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_ReentrancyStorage_$1489_storage_ptr",
																"typeString": "struct ReentrancyGuard.ReentrancyStorage storage pointer"
															}
														},
														"id": 1525,
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"memberName": "status",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 1488,
														"src": "839:8:7",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"id": 1526,
														"name": "_NOT_ENTERED",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1496,
														"src": "850:12:7",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "839:23:7",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"id": 1528,
												"nodeType": "ExpressionStatement",
												"src": "839:23:7"
											}
										]
									},
									"documentation": {
										"id": 1500,
										"nodeType": "StructuredDocumentation",
										"src": "623:18:7",
										"text": "Modifiers ///"
									},
									"id": 1530,
									"name": "nonReentrant",
									"nameLocation": "655:12:7",
									"nodeType": "ModifierDefinition",
									"parameters": {
										"id": 1501,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "667:2:7"
									},
									"src": "646:223:7",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 1542,
										"nodeType": "Block",
										"src": "1048:164:7",
										"statements": [
											{
												"assignments": [
													1538
												],
												"declarations": [
													{
														"constant": false,
														"id": 1538,
														"mutability": "mutable",
														"name": "position",
														"nameLocation": "1066:8:7",
														"nodeType": "VariableDeclaration",
														"scope": 1542,
														"src": "1058:16:7",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_bytes32",
															"typeString": "bytes32"
														},
														"typeName": {
															"id": 1537,
															"name": "bytes32",
															"nodeType": "ElementaryTypeName",
															"src": "1058:7:7",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 1540,
												"initialValue": {
													"id": 1539,
													"name": "NAMESPACE",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 1486,
													"src": "1077:9:7",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "1058:28:7"
											},
											{
												"AST": {
													"nodeType": "YulBlock",
													"src": "1161:45:7",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "1175:21:7",
															"value": {
																"name": "position",
																"nodeType": "YulIdentifier",
																"src": "1188:8:7"
															},
															"variableNames": [
																{
																	"name": "data.slot",
																	"nodeType": "YulIdentifier",
																	"src": "1175:9:7"
																}
															]
														}
													]
												},
												"evmVersion": "istanbul",
												"externalReferences": [
													{
														"declaration": 1535,
														"isOffset": false,
														"isSlot": true,
														"src": "1175:9:7",
														"suffix": "slot",
														"valueSize": 1
													},
													{
														"declaration": 1538,
														"isOffset": false,
														"isSlot": false,
														"src": "1188:8:7",
														"valueSize": 1
													}
												],
												"id": 1541,
												"nodeType": "InlineAssembly",
												"src": "1152:54:7"
											}
										]
									},
									"documentation": {
										"id": 1531,
										"nodeType": "StructuredDocumentation",
										"src": "904:28:7",
										"text": "@dev fetch local storage"
									},
									"id": 1543,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "reentrancyStorage",
									"nameLocation": "946:17:7",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1532,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "963:2:7"
									},
									"returnParameters": {
										"id": 1536,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1535,
												"mutability": "mutable",
												"name": "data",
												"nameLocation": "1038:4:7",
												"nodeType": "VariableDeclaration",
												"scope": 1543,
												"src": "1012:30:7",
												"stateVariable": false,
												"storageLocation": "storage",
												"typeDescriptions": {
													"typeIdentifier": "t_struct$_ReentrancyStorage_$1489_storage_ptr",
													"typeString": "struct ReentrancyGuard.ReentrancyStorage"
												},
												"typeName": {
													"id": 1534,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 1533,
														"name": "ReentrancyStorage",
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 1489,
														"src": "1012:17:7"
													},
													"referencedDeclaration": 1489,
													"src": "1012:17:7",
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_ReentrancyStorage_$1489_storage_ptr",
														"typeString": "struct ReentrancyGuard.ReentrancyStorage"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1011:32:7"
									},
									"scope": 1544,
									"src": "937:275:7",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "private"
								}
							],
							"scope": 1545,
							"src": "196:1018:7",
							"usedErrors": [
								1492
							]
						}
					],
					"src": "39:1176:7"
				},
				"id": 7
			},
			"bridges/interfaces/IDiamondCut.sol": {
				"ast": {
					"absolutePath": "bridges/interfaces/IDiamondCut.sol",
					"exportedSymbols": {
						"IDiamondCut": [
							1582
						]
					},
					"id": 1583,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 1546,
							"literals": [
								"solidity",
								">=",
								"0.8",
								".4",
								"<",
								"0.9",
								".0"
							],
							"nodeType": "PragmaDirective",
							"src": "32:31:8"
						},
						{
							"abstract": false,
							"baseContracts": [],
							"contractDependencies": [],
							"contractKind": "interface",
							"fullyImplemented": false,
							"id": 1582,
							"linearizedBaseContracts": [
								1582
							],
							"name": "IDiamondCut",
							"nameLocation": "75:11:8",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"canonicalName": "IDiamondCut.FacetCutAction",
									"id": 1550,
									"members": [
										{
											"id": 1547,
											"name": "Add",
											"nameLocation": "117:3:8",
											"nodeType": "EnumValue",
											"src": "117:3:8"
										},
										{
											"id": 1548,
											"name": "Replace",
											"nameLocation": "126:7:8",
											"nodeType": "EnumValue",
											"src": "126:7:8"
										},
										{
											"id": 1549,
											"name": "Remove",
											"nameLocation": "139:6:8",
											"nodeType": "EnumValue",
											"src": "139:6:8"
										}
									],
									"name": "FacetCutAction",
									"nameLocation": "96:14:8",
									"nodeType": "EnumDefinition",
									"src": "91:58:8"
								},
								{
									"canonicalName": "IDiamondCut.FacetCut",
									"id": 1559,
									"members": [
										{
											"constant": false,
											"id": 1552,
											"mutability": "mutable",
											"name": "facetAddress",
											"nameLocation": "215:12:8",
											"nodeType": "VariableDeclaration",
											"scope": 1559,
											"src": "207:20:8",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_address",
												"typeString": "address"
											},
											"typeName": {
												"id": 1551,
												"name": "address",
												"nodeType": "ElementaryTypeName",
												"src": "207:7:8",
												"stateMutability": "nonpayable",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 1555,
											"mutability": "mutable",
											"name": "action",
											"nameLocation": "248:6:8",
											"nodeType": "VariableDeclaration",
											"scope": 1559,
											"src": "233:21:8",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_enum$_FacetCutAction_$1550",
												"typeString": "enum IDiamondCut.FacetCutAction"
											},
											"typeName": {
												"id": 1554,
												"nodeType": "UserDefinedTypeName",
												"pathNode": {
													"id": 1553,
													"name": "FacetCutAction",
													"nodeType": "IdentifierPath",
													"referencedDeclaration": 1550,
													"src": "233:14:8"
												},
												"referencedDeclaration": 1550,
												"src": "233:14:8",
												"typeDescriptions": {
													"typeIdentifier": "t_enum$_FacetCutAction_$1550",
													"typeString": "enum IDiamondCut.FacetCutAction"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 1558,
											"mutability": "mutable",
											"name": "functionSelectors",
											"nameLocation": "269:17:8",
											"nodeType": "VariableDeclaration",
											"scope": 1559,
											"src": "260:26:8",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_array$_t_bytes4_$dyn_storage_ptr",
												"typeString": "bytes4[]"
											},
											"typeName": {
												"baseType": {
													"id": 1556,
													"name": "bytes4",
													"nodeType": "ElementaryTypeName",
													"src": "260:6:8",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes4",
														"typeString": "bytes4"
													}
												},
												"id": 1557,
												"nodeType": "ArrayTypeName",
												"src": "260:8:8",
												"typeDescriptions": {
													"typeIdentifier": "t_array$_t_bytes4_$dyn_storage_ptr",
													"typeString": "bytes4[]"
												}
											},
											"visibility": "internal"
										}
									],
									"name": "FacetCut",
									"nameLocation": "192:8:8",
									"nodeType": "StructDefinition",
									"scope": 1582,
									"src": "185:106:8",
									"visibility": "public"
								},
								{
									"documentation": {
										"id": 1560,
										"nodeType": "StructuredDocumentation",
										"src": "295:428:8",
										"text": "@notice Add/replace/remove any number of functions and optionally execute\n         a function with delegatecall\n @param _diamondCut Contains the facet addresses and function selectors\n @param _init The address of the contract or facet to execute _calldata\n @param _calldata A function call, including function selector and arguments\n                  _calldata is executed with delegatecall on _init"
									},
									"functionSelector": "1f931c1c",
									"id": 1571,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "diamondCut",
									"nameLocation": "735:10:8",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1569,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1564,
												"mutability": "mutable",
												"name": "_diamondCut",
												"nameLocation": "771:11:8",
												"nodeType": "VariableDeclaration",
												"scope": 1571,
												"src": "751:31:8",
												"stateVariable": false,
												"storageLocation": "calldata",
												"typeDescriptions": {
													"typeIdentifier": "t_array$_t_struct$_FacetCut_$1559_calldata_ptr_$dyn_calldata_ptr",
													"typeString": "struct IDiamondCut.FacetCut[]"
												},
												"typeName": {
													"baseType": {
														"id": 1562,
														"nodeType": "UserDefinedTypeName",
														"pathNode": {
															"id": 1561,
															"name": "FacetCut",
															"nodeType": "IdentifierPath",
															"referencedDeclaration": 1559,
															"src": "751:8:8"
														},
														"referencedDeclaration": 1559,
														"src": "751:8:8",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_FacetCut_$1559_storage_ptr",
															"typeString": "struct IDiamondCut.FacetCut"
														}
													},
													"id": 1563,
													"nodeType": "ArrayTypeName",
													"src": "751:10:8",
													"typeDescriptions": {
														"typeIdentifier": "t_array$_t_struct$_FacetCut_$1559_storage_$dyn_storage_ptr",
														"typeString": "struct IDiamondCut.FacetCut[]"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1566,
												"mutability": "mutable",
												"name": "_init",
												"nameLocation": "796:5:8",
												"nodeType": "VariableDeclaration",
												"scope": 1571,
												"src": "788:13:8",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1565,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "788:7:8",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1568,
												"mutability": "mutable",
												"name": "_calldata",
												"nameLocation": "822:9:8",
												"nodeType": "VariableDeclaration",
												"scope": 1571,
												"src": "807:24:8",
												"stateVariable": false,
												"storageLocation": "calldata",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_calldata_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 1567,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "807:5:8",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "745:90:8"
									},
									"returnParameters": {
										"id": 1570,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "844:0:8"
									},
									"scope": 1582,
									"src": "726:119:8",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"anonymous": false,
									"id": 1581,
									"name": "DiamondCut",
									"nameLocation": "855:10:8",
									"nodeType": "EventDefinition",
									"parameters": {
										"id": 1580,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1575,
												"indexed": false,
												"mutability": "mutable",
												"name": "_diamondCut",
												"nameLocation": "877:11:8",
												"nodeType": "VariableDeclaration",
												"scope": 1581,
												"src": "866:22:8",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_array$_t_struct$_FacetCut_$1559_memory_ptr_$dyn_memory_ptr",
													"typeString": "struct IDiamondCut.FacetCut[]"
												},
												"typeName": {
													"baseType": {
														"id": 1573,
														"nodeType": "UserDefinedTypeName",
														"pathNode": {
															"id": 1572,
															"name": "FacetCut",
															"nodeType": "IdentifierPath",
															"referencedDeclaration": 1559,
															"src": "866:8:8"
														},
														"referencedDeclaration": 1559,
														"src": "866:8:8",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_FacetCut_$1559_storage_ptr",
															"typeString": "struct IDiamondCut.FacetCut"
														}
													},
													"id": 1574,
													"nodeType": "ArrayTypeName",
													"src": "866:10:8",
													"typeDescriptions": {
														"typeIdentifier": "t_array$_t_struct$_FacetCut_$1559_storage_$dyn_storage_ptr",
														"typeString": "struct IDiamondCut.FacetCut[]"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1577,
												"indexed": false,
												"mutability": "mutable",
												"name": "_init",
												"nameLocation": "898:5:8",
												"nodeType": "VariableDeclaration",
												"scope": 1581,
												"src": "890:13:8",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1576,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "890:7:8",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1579,
												"indexed": false,
												"mutability": "mutable",
												"name": "_calldata",
												"nameLocation": "911:9:8",
												"nodeType": "VariableDeclaration",
												"scope": 1581,
												"src": "905:15:8",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 1578,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "905:5:8",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "865:56:8"
									},
									"src": "849:73:8"
								}
							],
							"scope": 1583,
							"src": "65:859:8",
							"usedErrors": []
						}
					],
					"src": "32:893:8"
				},
				"id": 8
			},
			"bridges/interfaces/IStargateReceiver.sol": {
				"ast": {
					"absolutePath": "bridges/interfaces/IStargateReceiver.sol",
					"exportedSymbols": {
						"IStargateReceiver": [
							1600
						]
					},
					"id": 1601,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 1584,
							"literals": [
								"solidity",
								"0.8",
								".4"
							],
							"nodeType": "PragmaDirective",
							"src": "33:22:9"
						},
						{
							"abstract": false,
							"baseContracts": [],
							"contractDependencies": [],
							"contractKind": "interface",
							"fullyImplemented": false,
							"id": 1600,
							"linearizedBaseContracts": [
								1600
							],
							"name": "IStargateReceiver",
							"nameLocation": "67:17:9",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"functionSelector": "ab8236f3",
									"id": 1599,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "sgReceive",
									"nameLocation": "100:9:9",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1597,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1586,
												"mutability": "mutable",
												"name": "_srcChainId",
												"nameLocation": "126:11:9",
												"nodeType": "VariableDeclaration",
												"scope": 1599,
												"src": "119:18:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint16",
													"typeString": "uint16"
												},
												"typeName": {
													"id": 1585,
													"name": "uint16",
													"nodeType": "ElementaryTypeName",
													"src": "119:6:9",
													"typeDescriptions": {
														"typeIdentifier": "t_uint16",
														"typeString": "uint16"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1588,
												"mutability": "mutable",
												"name": "_srcAddress",
												"nameLocation": "201:11:9",
												"nodeType": "VariableDeclaration",
												"scope": 1599,
												"src": "188:24:9",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 1587,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "188:5:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1590,
												"mutability": "mutable",
												"name": "_nonce",
												"nameLocation": "259:6:9",
												"nodeType": "VariableDeclaration",
												"scope": 1599,
												"src": "251:14:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1589,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "251:7:9",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1592,
												"mutability": "mutable",
												"name": "_token",
												"nameLocation": "283:6:9",
												"nodeType": "VariableDeclaration",
												"scope": 1599,
												"src": "275:14:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1591,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "275:7:9",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1594,
												"mutability": "mutable",
												"name": "amountLD",
												"nameLocation": "348:8:9",
												"nodeType": "VariableDeclaration",
												"scope": 1599,
												"src": "340:16:9",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1593,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "340:7:9",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1596,
												"mutability": "mutable",
												"name": "payload",
												"nameLocation": "422:7:9",
												"nodeType": "VariableDeclaration",
												"scope": 1599,
												"src": "409:20:9",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 1595,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "409:5:9",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "109:326:9"
									},
									"returnParameters": {
										"id": 1598,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "444:0:9"
									},
									"scope": 1600,
									"src": "91:354:9",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								}
							],
							"scope": 1601,
							"src": "57:390:9",
							"usedErrors": []
						}
					],
					"src": "33:415:9"
				},
				"id": 9
			},
			"bridges/interfaces/IStargateRouter.sol": {
				"ast": {
					"absolutePath": "bridges/interfaces/IStargateRouter.sol",
					"exportedSymbols": {
						"IStargateRouter": [
							1720
						]
					},
					"id": 1721,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 1602,
							"literals": [
								"solidity",
								"0.8",
								".4"
							],
							"nodeType": "PragmaDirective",
							"src": "32:22:10"
						},
						{
							"id": 1603,
							"literals": [
								"abicoder",
								"v2"
							],
							"nodeType": "PragmaDirective",
							"src": "55:19:10"
						},
						{
							"abstract": false,
							"baseContracts": [],
							"contractDependencies": [],
							"contractKind": "interface",
							"fullyImplemented": false,
							"id": 1720,
							"linearizedBaseContracts": [
								1720
							],
							"name": "IStargateRouter",
							"nameLocation": "86:15:10",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"canonicalName": "IStargateRouter.lzTxObj",
									"id": 1610,
									"members": [
										{
											"constant": false,
											"id": 1605,
											"mutability": "mutable",
											"name": "dstGasForCall",
											"nameLocation": "141:13:10",
											"nodeType": "VariableDeclaration",
											"scope": 1610,
											"src": "133:21:10",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 1604,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "133:7:10",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 1607,
											"mutability": "mutable",
											"name": "dstNativeAmount",
											"nameLocation": "172:15:10",
											"nodeType": "VariableDeclaration",
											"scope": 1610,
											"src": "164:23:10",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 1606,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "164:7:10",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 1609,
											"mutability": "mutable",
											"name": "dstNativeAddr",
											"nameLocation": "203:13:10",
											"nodeType": "VariableDeclaration",
											"scope": 1610,
											"src": "197:19:10",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_bytes_storage_ptr",
												"typeString": "bytes"
											},
											"typeName": {
												"id": 1608,
												"name": "bytes",
												"nodeType": "ElementaryTypeName",
												"src": "197:5:10",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_storage_ptr",
													"typeString": "bytes"
												}
											},
											"visibility": "internal"
										}
									],
									"name": "lzTxObj",
									"nameLocation": "115:7:10",
									"nodeType": "StructDefinition",
									"scope": 1720,
									"src": "108:115:10",
									"visibility": "public"
								},
								{
									"functionSelector": "87b21efc",
									"id": 1619,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "addLiquidity",
									"nameLocation": "238:12:10",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1617,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1612,
												"mutability": "mutable",
												"name": "_poolId",
												"nameLocation": "268:7:10",
												"nodeType": "VariableDeclaration",
												"scope": 1619,
												"src": "260:15:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1611,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "260:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1614,
												"mutability": "mutable",
												"name": "_amountLD",
												"nameLocation": "293:9:10",
												"nodeType": "VariableDeclaration",
												"scope": 1619,
												"src": "285:17:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1613,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "285:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1616,
												"mutability": "mutable",
												"name": "_to",
												"nameLocation": "320:3:10",
												"nodeType": "VariableDeclaration",
												"scope": 1619,
												"src": "312:11:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1615,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "312:7:10",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "250:79:10"
									},
									"returnParameters": {
										"id": 1618,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "338:0:10"
									},
									"scope": 1720,
									"src": "229:110:10",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"functionSelector": "9fbf10fc",
									"id": 1641,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "swap",
									"nameLocation": "354:4:10",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1639,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1621,
												"mutability": "mutable",
												"name": "_dstChainId",
												"nameLocation": "375:11:10",
												"nodeType": "VariableDeclaration",
												"scope": 1641,
												"src": "368:18:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint16",
													"typeString": "uint16"
												},
												"typeName": {
													"id": 1620,
													"name": "uint16",
													"nodeType": "ElementaryTypeName",
													"src": "368:6:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint16",
														"typeString": "uint16"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1623,
												"mutability": "mutable",
												"name": "_srcPoolId",
												"nameLocation": "404:10:10",
												"nodeType": "VariableDeclaration",
												"scope": 1641,
												"src": "396:18:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1622,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "396:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1625,
												"mutability": "mutable",
												"name": "_dstPoolId",
												"nameLocation": "432:10:10",
												"nodeType": "VariableDeclaration",
												"scope": 1641,
												"src": "424:18:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1624,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "424:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1627,
												"mutability": "mutable",
												"name": "_refundAddress",
												"nameLocation": "468:14:10",
												"nodeType": "VariableDeclaration",
												"scope": 1641,
												"src": "452:30:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address_payable",
													"typeString": "address payable"
												},
												"typeName": {
													"id": 1626,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "452:15:10",
													"stateMutability": "payable",
													"typeDescriptions": {
														"typeIdentifier": "t_address_payable",
														"typeString": "address payable"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1629,
												"mutability": "mutable",
												"name": "_amountLD",
												"nameLocation": "500:9:10",
												"nodeType": "VariableDeclaration",
												"scope": 1641,
												"src": "492:17:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1628,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "492:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1631,
												"mutability": "mutable",
												"name": "_minAmountLD",
												"nameLocation": "527:12:10",
												"nodeType": "VariableDeclaration",
												"scope": 1641,
												"src": "519:20:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1630,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "519:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1634,
												"mutability": "mutable",
												"name": "_lzTxParams",
												"nameLocation": "564:11:10",
												"nodeType": "VariableDeclaration",
												"scope": 1641,
												"src": "549:26:10",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_struct$_lzTxObj_$1610_memory_ptr",
													"typeString": "struct IStargateRouter.lzTxObj"
												},
												"typeName": {
													"id": 1633,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 1632,
														"name": "lzTxObj",
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 1610,
														"src": "549:7:10"
													},
													"referencedDeclaration": 1610,
													"src": "549:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_lzTxObj_$1610_storage_ptr",
														"typeString": "struct IStargateRouter.lzTxObj"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1636,
												"mutability": "mutable",
												"name": "_to",
												"nameLocation": "600:3:10",
												"nodeType": "VariableDeclaration",
												"scope": 1641,
												"src": "585:18:10",
												"stateVariable": false,
												"storageLocation": "calldata",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_calldata_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 1635,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "585:5:10",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1638,
												"mutability": "mutable",
												"name": "_payload",
												"nameLocation": "628:8:10",
												"nodeType": "VariableDeclaration",
												"scope": 1641,
												"src": "613:23:10",
												"stateVariable": false,
												"storageLocation": "calldata",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_calldata_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 1637,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "613:5:10",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "358:284:10"
									},
									"returnParameters": {
										"id": 1640,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "659:0:10"
									},
									"scope": 1720,
									"src": "345:315:10",
									"stateMutability": "payable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"functionSelector": "84d0dba3",
									"id": 1661,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "redeemRemote",
									"nameLocation": "675:12:10",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1659,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1643,
												"mutability": "mutable",
												"name": "_dstChainId",
												"nameLocation": "704:11:10",
												"nodeType": "VariableDeclaration",
												"scope": 1661,
												"src": "697:18:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint16",
													"typeString": "uint16"
												},
												"typeName": {
													"id": 1642,
													"name": "uint16",
													"nodeType": "ElementaryTypeName",
													"src": "697:6:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint16",
														"typeString": "uint16"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1645,
												"mutability": "mutable",
												"name": "_srcPoolId",
												"nameLocation": "733:10:10",
												"nodeType": "VariableDeclaration",
												"scope": 1661,
												"src": "725:18:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1644,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "725:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1647,
												"mutability": "mutable",
												"name": "_dstPoolId",
												"nameLocation": "761:10:10",
												"nodeType": "VariableDeclaration",
												"scope": 1661,
												"src": "753:18:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1646,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "753:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1649,
												"mutability": "mutable",
												"name": "_refundAddress",
												"nameLocation": "797:14:10",
												"nodeType": "VariableDeclaration",
												"scope": 1661,
												"src": "781:30:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address_payable",
													"typeString": "address payable"
												},
												"typeName": {
													"id": 1648,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "781:15:10",
													"stateMutability": "payable",
													"typeDescriptions": {
														"typeIdentifier": "t_address_payable",
														"typeString": "address payable"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1651,
												"mutability": "mutable",
												"name": "_amountLP",
												"nameLocation": "829:9:10",
												"nodeType": "VariableDeclaration",
												"scope": 1661,
												"src": "821:17:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1650,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "821:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1653,
												"mutability": "mutable",
												"name": "_minAmountLD",
												"nameLocation": "856:12:10",
												"nodeType": "VariableDeclaration",
												"scope": 1661,
												"src": "848:20:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1652,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "848:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1655,
												"mutability": "mutable",
												"name": "_to",
												"nameLocation": "893:3:10",
												"nodeType": "VariableDeclaration",
												"scope": 1661,
												"src": "878:18:10",
												"stateVariable": false,
												"storageLocation": "calldata",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_calldata_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 1654,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "878:5:10",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1658,
												"mutability": "mutable",
												"name": "_lzTxParams",
												"nameLocation": "921:11:10",
												"nodeType": "VariableDeclaration",
												"scope": 1661,
												"src": "906:26:10",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_struct$_lzTxObj_$1610_memory_ptr",
													"typeString": "struct IStargateRouter.lzTxObj"
												},
												"typeName": {
													"id": 1657,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 1656,
														"name": "lzTxObj",
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 1610,
														"src": "906:7:10"
													},
													"referencedDeclaration": 1610,
													"src": "906:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_lzTxObj_$1610_storage_ptr",
														"typeString": "struct IStargateRouter.lzTxObj"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "687:251:10"
									},
									"returnParameters": {
										"id": 1660,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "955:0:10"
									},
									"scope": 1720,
									"src": "666:290:10",
									"stateMutability": "payable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"functionSelector": "c4de93a5",
									"id": 1672,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "instantRedeemLocal",
									"nameLocation": "971:18:10",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1668,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1663,
												"mutability": "mutable",
												"name": "_srcPoolId",
												"nameLocation": "1006:10:10",
												"nodeType": "VariableDeclaration",
												"scope": 1672,
												"src": "999:17:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint16",
													"typeString": "uint16"
												},
												"typeName": {
													"id": 1662,
													"name": "uint16",
													"nodeType": "ElementaryTypeName",
													"src": "999:6:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint16",
														"typeString": "uint16"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1665,
												"mutability": "mutable",
												"name": "_amountLP",
												"nameLocation": "1034:9:10",
												"nodeType": "VariableDeclaration",
												"scope": 1672,
												"src": "1026:17:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1664,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1026:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1667,
												"mutability": "mutable",
												"name": "_to",
												"nameLocation": "1061:3:10",
												"nodeType": "VariableDeclaration",
												"scope": 1672,
												"src": "1053:11:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1666,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1053:7:10",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "989:81:10"
									},
									"returnParameters": {
										"id": 1671,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1670,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 1672,
												"src": "1089:7:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1669,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1089:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1088:9:10"
									},
									"scope": 1720,
									"src": "962:136:10",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"functionSelector": "8f2e1d18",
									"id": 1690,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "redeemLocal",
									"nameLocation": "1113:11:10",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1688,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1674,
												"mutability": "mutable",
												"name": "_dstChainId",
												"nameLocation": "1141:11:10",
												"nodeType": "VariableDeclaration",
												"scope": 1690,
												"src": "1134:18:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint16",
													"typeString": "uint16"
												},
												"typeName": {
													"id": 1673,
													"name": "uint16",
													"nodeType": "ElementaryTypeName",
													"src": "1134:6:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint16",
														"typeString": "uint16"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1676,
												"mutability": "mutable",
												"name": "_srcPoolId",
												"nameLocation": "1170:10:10",
												"nodeType": "VariableDeclaration",
												"scope": 1690,
												"src": "1162:18:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1675,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1162:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1678,
												"mutability": "mutable",
												"name": "_dstPoolId",
												"nameLocation": "1198:10:10",
												"nodeType": "VariableDeclaration",
												"scope": 1690,
												"src": "1190:18:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1677,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1190:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1680,
												"mutability": "mutable",
												"name": "_refundAddress",
												"nameLocation": "1234:14:10",
												"nodeType": "VariableDeclaration",
												"scope": 1690,
												"src": "1218:30:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address_payable",
													"typeString": "address payable"
												},
												"typeName": {
													"id": 1679,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1218:15:10",
													"stateMutability": "payable",
													"typeDescriptions": {
														"typeIdentifier": "t_address_payable",
														"typeString": "address payable"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1682,
												"mutability": "mutable",
												"name": "_amountLP",
												"nameLocation": "1266:9:10",
												"nodeType": "VariableDeclaration",
												"scope": 1690,
												"src": "1258:17:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1681,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1258:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1684,
												"mutability": "mutable",
												"name": "_to",
												"nameLocation": "1300:3:10",
												"nodeType": "VariableDeclaration",
												"scope": 1690,
												"src": "1285:18:10",
												"stateVariable": false,
												"storageLocation": "calldata",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_calldata_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 1683,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "1285:5:10",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1687,
												"mutability": "mutable",
												"name": "_lzTxParams",
												"nameLocation": "1328:11:10",
												"nodeType": "VariableDeclaration",
												"scope": 1690,
												"src": "1313:26:10",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_struct$_lzTxObj_$1610_memory_ptr",
													"typeString": "struct IStargateRouter.lzTxObj"
												},
												"typeName": {
													"id": 1686,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 1685,
														"name": "lzTxObj",
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 1610,
														"src": "1313:7:10"
													},
													"referencedDeclaration": 1610,
													"src": "1313:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_lzTxObj_$1610_storage_ptr",
														"typeString": "struct IStargateRouter.lzTxObj"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1124:221:10"
									},
									"returnParameters": {
										"id": 1689,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1362:0:10"
									},
									"scope": 1720,
									"src": "1104:259:10",
									"stateMutability": "payable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"functionSelector": "9ba3aa74",
									"id": 1701,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "sendCredits",
									"nameLocation": "1378:11:10",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1699,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1692,
												"mutability": "mutable",
												"name": "_dstChainId",
												"nameLocation": "1406:11:10",
												"nodeType": "VariableDeclaration",
												"scope": 1701,
												"src": "1399:18:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint16",
													"typeString": "uint16"
												},
												"typeName": {
													"id": 1691,
													"name": "uint16",
													"nodeType": "ElementaryTypeName",
													"src": "1399:6:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint16",
														"typeString": "uint16"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1694,
												"mutability": "mutable",
												"name": "_srcPoolId",
												"nameLocation": "1435:10:10",
												"nodeType": "VariableDeclaration",
												"scope": 1701,
												"src": "1427:18:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1693,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1427:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1696,
												"mutability": "mutable",
												"name": "_dstPoolId",
												"nameLocation": "1463:10:10",
												"nodeType": "VariableDeclaration",
												"scope": 1701,
												"src": "1455:18:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1695,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1455:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1698,
												"mutability": "mutable",
												"name": "_refundAddress",
												"nameLocation": "1499:14:10",
												"nodeType": "VariableDeclaration",
												"scope": 1701,
												"src": "1483:30:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address_payable",
													"typeString": "address payable"
												},
												"typeName": {
													"id": 1697,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1483:15:10",
													"stateMutability": "payable",
													"typeDescriptions": {
														"typeIdentifier": "t_address_payable",
														"typeString": "address payable"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1389:130:10"
									},
									"returnParameters": {
										"id": 1700,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1536:0:10"
									},
									"scope": 1720,
									"src": "1369:168:10",
									"stateMutability": "payable",
									"virtual": false,
									"visibility": "external"
								},
								{
									"functionSelector": "0a512369",
									"id": 1719,
									"implemented": false,
									"kind": "function",
									"modifiers": [],
									"name": "quoteLayerZeroFee",
									"nameLocation": "1552:17:10",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1713,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1703,
												"mutability": "mutable",
												"name": "_dstChainId",
												"nameLocation": "1586:11:10",
												"nodeType": "VariableDeclaration",
												"scope": 1719,
												"src": "1579:18:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint16",
													"typeString": "uint16"
												},
												"typeName": {
													"id": 1702,
													"name": "uint16",
													"nodeType": "ElementaryTypeName",
													"src": "1579:6:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint16",
														"typeString": "uint16"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1705,
												"mutability": "mutable",
												"name": "_functionType",
												"nameLocation": "1613:13:10",
												"nodeType": "VariableDeclaration",
												"scope": 1719,
												"src": "1607:19:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint8",
													"typeString": "uint8"
												},
												"typeName": {
													"id": 1704,
													"name": "uint8",
													"nodeType": "ElementaryTypeName",
													"src": "1607:5:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint8",
														"typeString": "uint8"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1707,
												"mutability": "mutable",
												"name": "_toAddress",
												"nameLocation": "1651:10:10",
												"nodeType": "VariableDeclaration",
												"scope": 1719,
												"src": "1636:25:10",
												"stateVariable": false,
												"storageLocation": "calldata",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_calldata_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 1706,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "1636:5:10",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1709,
												"mutability": "mutable",
												"name": "_transferAndCallPayload",
												"nameLocation": "1686:23:10",
												"nodeType": "VariableDeclaration",
												"scope": 1719,
												"src": "1671:38:10",
												"stateVariable": false,
												"storageLocation": "calldata",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_calldata_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 1708,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "1671:5:10",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1712,
												"mutability": "mutable",
												"name": "_lzTxParams",
												"nameLocation": "1734:11:10",
												"nodeType": "VariableDeclaration",
												"scope": 1719,
												"src": "1719:26:10",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_struct$_lzTxObj_$1610_memory_ptr",
													"typeString": "struct IStargateRouter.lzTxObj"
												},
												"typeName": {
													"id": 1711,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 1710,
														"name": "lzTxObj",
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 1610,
														"src": "1719:7:10"
													},
													"referencedDeclaration": 1610,
													"src": "1719:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_lzTxObj_$1610_storage_ptr",
														"typeString": "struct IStargateRouter.lzTxObj"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1569:182:10"
									},
									"returnParameters": {
										"id": 1718,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1715,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 1719,
												"src": "1775:7:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1714,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1775:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1717,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 1719,
												"src": "1784:7:10",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 1716,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "1784:7:10",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1774:18:10"
									},
									"scope": 1720,
									"src": "1543:250:10",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "external"
								}
							],
							"scope": 1721,
							"src": "76:1719:10",
							"usedErrors": []
						}
					],
					"src": "32:1764:10"
				},
				"id": 10
			},
			"bridges/libs/LibDiamond.sol": {
				"ast": {
					"absolutePath": "bridges/libs/LibDiamond.sol",
					"exportedSymbols": {
						"IDiamondCut": [
							1582
						],
						"LibDiamond": [
							2554
						]
					},
					"id": 2555,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 1722,
							"literals": [
								"solidity",
								">=",
								"0.8",
								".4",
								"<",
								"0.9",
								".0"
							],
							"nodeType": "PragmaDirective",
							"src": "32:31:11"
						},
						{
							"absolutePath": "bridges/interfaces/IDiamondCut.sol",
							"file": "../interfaces/IDiamondCut.sol",
							"id": 1724,
							"nameLocation": "-1:-1:-1",
							"nodeType": "ImportDirective",
							"scope": 2555,
							"sourceUnit": 1583,
							"src": "65:60:11",
							"symbolAliases": [
								{
									"foreign": {
										"id": 1723,
										"name": "IDiamondCut",
										"nodeType": "Identifier",
										"overloadedDeclarations": [],
										"src": "74:11:11",
										"typeDescriptions": {}
									},
									"nameLocation": "-1:-1:-1"
								}
							],
							"unitAlias": ""
						},
						{
							"abstract": false,
							"baseContracts": [],
							"contractDependencies": [],
							"contractKind": "library",
							"fullyImplemented": true,
							"id": 2554,
							"linearizedBaseContracts": [
								2554
							],
							"name": "LibDiamond",
							"nameLocation": "135:10:11",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"constant": true,
									"id": 1729,
									"mutability": "constant",
									"name": "DIAMOND_STORAGE_POSITION",
									"nameLocation": "176:24:11",
									"nodeType": "VariableDeclaration",
									"scope": 2554,
									"src": "150:98:11",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_bytes32",
										"typeString": "bytes32"
									},
									"typeName": {
										"id": 1725,
										"name": "bytes32",
										"nodeType": "ElementaryTypeName",
										"src": "150:7:11",
										"typeDescriptions": {
											"typeIdentifier": "t_bytes32",
											"typeString": "bytes32"
										}
									},
									"value": {
										"arguments": [
											{
												"hexValue": "6469616d6f6e642e7374616e646172642e6469616d6f6e642e73746f72616765",
												"id": 1727,
												"isConstant": false,
												"isLValue": false,
												"isPure": true,
												"kind": "string",
												"lValueRequested": false,
												"nodeType": "Literal",
												"src": "213:34:11",
												"typeDescriptions": {
													"typeIdentifier": "t_stringliteral_c8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c",
													"typeString": "literal_string \"diamond.standard.diamond.storage\""
												},
												"value": "diamond.standard.diamond.storage"
											}
										],
										"expression": {
											"argumentTypes": [
												{
													"typeIdentifier": "t_stringliteral_c8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c",
													"typeString": "literal_string \"diamond.standard.diamond.storage\""
												}
											],
											"id": 1726,
											"name": "keccak256",
											"nodeType": "Identifier",
											"overloadedDeclarations": [],
											"referencedDeclaration": 4294967288,
											"src": "203:9:11",
											"typeDescriptions": {
												"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
												"typeString": "function (bytes memory) pure returns (bytes32)"
											}
										},
										"id": 1728,
										"isConstant": false,
										"isLValue": false,
										"isPure": true,
										"kind": "functionCall",
										"lValueRequested": false,
										"names": [],
										"nodeType": "FunctionCall",
										"src": "203:45:11",
										"tryCall": false,
										"typeDescriptions": {
											"typeIdentifier": "t_bytes32",
											"typeString": "bytes32"
										}
									},
									"visibility": "internal"
								},
								{
									"canonicalName": "LibDiamond.FacetAddressAndPosition",
									"id": 1734,
									"members": [
										{
											"constant": false,
											"id": 1731,
											"mutability": "mutable",
											"name": "facetAddress",
											"nameLocation": "298:12:11",
											"nodeType": "VariableDeclaration",
											"scope": 1734,
											"src": "290:20:11",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_address",
												"typeString": "address"
											},
											"typeName": {
												"id": 1730,
												"name": "address",
												"nodeType": "ElementaryTypeName",
												"src": "290:7:11",
												"stateMutability": "nonpayable",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 1733,
											"mutability": "mutable",
											"name": "functionSelectorPosition",
											"nameLocation": "323:24:11",
											"nodeType": "VariableDeclaration",
											"scope": 1734,
											"src": "316:31:11",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint96",
												"typeString": "uint96"
											},
											"typeName": {
												"id": 1732,
												"name": "uint96",
												"nodeType": "ElementaryTypeName",
												"src": "316:6:11",
												"typeDescriptions": {
													"typeIdentifier": "t_uint96",
													"typeString": "uint96"
												}
											},
											"visibility": "internal"
										}
									],
									"name": "FacetAddressAndPosition",
									"nameLocation": "260:23:11",
									"nodeType": "StructDefinition",
									"scope": 2554,
									"src": "253:161:11",
									"visibility": "public"
								},
								{
									"canonicalName": "LibDiamond.FacetFunctionSelectors",
									"id": 1740,
									"members": [
										{
											"constant": false,
											"id": 1737,
											"mutability": "mutable",
											"name": "functionSelectors",
											"nameLocation": "463:17:11",
											"nodeType": "VariableDeclaration",
											"scope": 1740,
											"src": "454:26:11",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_array$_t_bytes4_$dyn_storage_ptr",
												"typeString": "bytes4[]"
											},
											"typeName": {
												"baseType": {
													"id": 1735,
													"name": "bytes4",
													"nodeType": "ElementaryTypeName",
													"src": "454:6:11",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes4",
														"typeString": "bytes4"
													}
												},
												"id": 1736,
												"nodeType": "ArrayTypeName",
												"src": "454:8:11",
												"typeDescriptions": {
													"typeIdentifier": "t_array$_t_bytes4_$dyn_storage_ptr",
													"typeString": "bytes4[]"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 1739,
											"mutability": "mutable",
											"name": "facetAddressPosition",
											"nameLocation": "494:20:11",
											"nodeType": "VariableDeclaration",
											"scope": 1740,
											"src": "486:28:11",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											},
											"typeName": {
												"id": 1738,
												"name": "uint256",
												"nodeType": "ElementaryTypeName",
												"src": "486:7:11",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												}
											},
											"visibility": "internal"
										}
									],
									"name": "FacetFunctionSelectors",
									"nameLocation": "425:22:11",
									"nodeType": "StructDefinition",
									"scope": 2554,
									"src": "418:153:11",
									"visibility": "public"
								},
								{
									"canonicalName": "LibDiamond.DiamondStorage",
									"id": 1760,
									"members": [
										{
											"constant": false,
											"id": 1745,
											"mutability": "mutable",
											"name": "selectorToFacetAndPosition",
											"nameLocation": "783:26:11",
											"nodeType": "VariableDeclaration",
											"scope": 1760,
											"src": "740:69:11",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndPosition_$1734_storage_$",
												"typeString": "mapping(bytes4 => struct LibDiamond.FacetAddressAndPosition)"
											},
											"typeName": {
												"id": 1744,
												"keyType": {
													"id": 1741,
													"name": "bytes4",
													"nodeType": "ElementaryTypeName",
													"src": "748:6:11",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes4",
														"typeString": "bytes4"
													}
												},
												"nodeType": "Mapping",
												"src": "740:42:11",
												"typeDescriptions": {
													"typeIdentifier": "t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndPosition_$1734_storage_$",
													"typeString": "mapping(bytes4 => struct LibDiamond.FacetAddressAndPosition)"
												},
												"valueType": {
													"id": 1743,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 1742,
														"name": "FacetAddressAndPosition",
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 1734,
														"src": "758:23:11"
													},
													"referencedDeclaration": 1734,
													"src": "758:23:11",
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_FacetAddressAndPosition_$1734_storage_ptr",
														"typeString": "struct LibDiamond.FacetAddressAndPosition"
													}
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 1750,
											"mutability": "mutable",
											"name": "facetFunctionSelectors",
											"nameLocation": "908:22:11",
											"nodeType": "VariableDeclaration",
											"scope": 1760,
											"src": "865:65:11",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_mapping$_t_address_$_t_struct$_FacetFunctionSelectors_$1740_storage_$",
												"typeString": "mapping(address => struct LibDiamond.FacetFunctionSelectors)"
											},
											"typeName": {
												"id": 1749,
												"keyType": {
													"id": 1746,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "873:7:11",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"nodeType": "Mapping",
												"src": "865:42:11",
												"typeDescriptions": {
													"typeIdentifier": "t_mapping$_t_address_$_t_struct$_FacetFunctionSelectors_$1740_storage_$",
													"typeString": "mapping(address => struct LibDiamond.FacetFunctionSelectors)"
												},
												"valueType": {
													"id": 1748,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 1747,
														"name": "FacetFunctionSelectors",
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 1740,
														"src": "884:22:11"
													},
													"referencedDeclaration": 1740,
													"src": "884:22:11",
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_FacetFunctionSelectors_$1740_storage_ptr",
														"typeString": "struct LibDiamond.FacetFunctionSelectors"
													}
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 1753,
											"mutability": "mutable",
											"name": "facetAddresses",
											"nameLocation": "969:14:11",
											"nodeType": "VariableDeclaration",
											"scope": 1760,
											"src": "959:24:11",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
												"typeString": "address[]"
											},
											"typeName": {
												"baseType": {
													"id": 1751,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "959:7:11",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"id": 1752,
												"nodeType": "ArrayTypeName",
												"src": "959:9:11",
												"typeDescriptions": {
													"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
													"typeString": "address[]"
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 1757,
											"mutability": "mutable",
											"name": "supportedInterfaces",
											"nameLocation": "1107:19:11",
											"nodeType": "VariableDeclaration",
											"scope": 1760,
											"src": "1083:43:11",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$",
												"typeString": "mapping(bytes4 => bool)"
											},
											"typeName": {
												"id": 1756,
												"keyType": {
													"id": 1754,
													"name": "bytes4",
													"nodeType": "ElementaryTypeName",
													"src": "1091:6:11",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes4",
														"typeString": "bytes4"
													}
												},
												"nodeType": "Mapping",
												"src": "1083:23:11",
												"typeDescriptions": {
													"typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$",
													"typeString": "mapping(bytes4 => bool)"
												},
												"valueType": {
													"id": 1755,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "1101:4:11",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												}
											},
											"visibility": "internal"
										},
										{
											"constant": false,
											"id": 1759,
											"mutability": "mutable",
											"name": "contractOwner",
											"nameLocation": "1169:13:11",
											"nodeType": "VariableDeclaration",
											"scope": 1760,
											"src": "1161:21:11",
											"stateVariable": false,
											"storageLocation": "default",
											"typeDescriptions": {
												"typeIdentifier": "t_address",
												"typeString": "address"
											},
											"typeName": {
												"id": 1758,
												"name": "address",
												"nodeType": "ElementaryTypeName",
												"src": "1161:7:11",
												"stateMutability": "nonpayable",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												}
											},
											"visibility": "internal"
										}
									],
									"name": "DiamondStorage",
									"nameLocation": "582:14:11",
									"nodeType": "StructDefinition",
									"scope": 2554,
									"src": "575:612:11",
									"visibility": "public"
								},
								{
									"body": {
										"id": 1771,
										"nodeType": "Block",
										"src": "1267:155:11",
										"statements": [
											{
												"assignments": [
													1767
												],
												"declarations": [
													{
														"constant": false,
														"id": 1767,
														"mutability": "mutable",
														"name": "position",
														"nameLocation": "1281:8:11",
														"nodeType": "VariableDeclaration",
														"scope": 1771,
														"src": "1273:16:11",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_bytes32",
															"typeString": "bytes32"
														},
														"typeName": {
															"id": 1766,
															"name": "bytes32",
															"nodeType": "ElementaryTypeName",
															"src": "1273:7:11",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes32",
																"typeString": "bytes32"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 1769,
												"initialValue": {
													"id": 1768,
													"name": "DIAMOND_STORAGE_POSITION",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 1729,
													"src": "1292:24:11",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "1273:43:11"
											},
											{
												"AST": {
													"nodeType": "YulBlock",
													"src": "1383:35:11",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "1393:19:11",
															"value": {
																"name": "position",
																"nodeType": "YulIdentifier",
																"src": "1404:8:11"
															},
															"variableNames": [
																{
																	"name": "ds.slot",
																	"nodeType": "YulIdentifier",
																	"src": "1393:7:11"
																}
															]
														}
													]
												},
												"evmVersion": "istanbul",
												"externalReferences": [
													{
														"declaration": 1764,
														"isOffset": false,
														"isSlot": true,
														"src": "1393:7:11",
														"suffix": "slot",
														"valueSize": 1
													},
													{
														"declaration": 1767,
														"isOffset": false,
														"isSlot": false,
														"src": "1404:8:11",
														"valueSize": 1
													}
												],
												"id": 1770,
												"nodeType": "InlineAssembly",
												"src": "1374:44:11"
											}
										]
									},
									"id": 1772,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "diamondStorage",
									"nameLocation": "1200:14:11",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1761,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1214:2:11"
									},
									"returnParameters": {
										"id": 1765,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1764,
												"mutability": "mutable",
												"name": "ds",
												"nameLocation": "1263:2:11",
												"nodeType": "VariableDeclaration",
												"scope": 1772,
												"src": "1240:25:11",
												"stateVariable": false,
												"storageLocation": "storage",
												"typeDescriptions": {
													"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
													"typeString": "struct LibDiamond.DiamondStorage"
												},
												"typeName": {
													"id": 1763,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 1762,
														"name": "DiamondStorage",
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 1760,
														"src": "1240:14:11"
													},
													"referencedDeclaration": 1760,
													"src": "1240:14:11",
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
														"typeString": "struct LibDiamond.DiamondStorage"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1239:27:11"
									},
									"scope": 2554,
									"src": "1191:231:11",
									"stateMutability": "pure",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"anonymous": false,
									"id": 1778,
									"name": "OwnershipTransferred",
									"nameLocation": "1432:20:11",
									"nodeType": "EventDefinition",
									"parameters": {
										"id": 1777,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1774,
												"indexed": true,
												"mutability": "mutable",
												"name": "previousOwner",
												"nameLocation": "1469:13:11",
												"nodeType": "VariableDeclaration",
												"scope": 1778,
												"src": "1453:29:11",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1773,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1453:7:11",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1776,
												"indexed": true,
												"mutability": "mutable",
												"name": "newOwner",
												"nameLocation": "1500:8:11",
												"nodeType": "VariableDeclaration",
												"scope": 1778,
												"src": "1484:24:11",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1775,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1484:7:11",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1452:57:11"
									},
									"src": "1426:84:11"
								},
								{
									"body": {
										"id": 1805,
										"nodeType": "Block",
										"src": "1568:192:11",
										"statements": [
											{
												"assignments": [
													1785
												],
												"declarations": [
													{
														"constant": false,
														"id": 1785,
														"mutability": "mutable",
														"name": "ds",
														"nameLocation": "1597:2:11",
														"nodeType": "VariableDeclaration",
														"scope": 1805,
														"src": "1574:25:11",
														"stateVariable": false,
														"storageLocation": "storage",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
															"typeString": "struct LibDiamond.DiamondStorage"
														},
														"typeName": {
															"id": 1784,
															"nodeType": "UserDefinedTypeName",
															"pathNode": {
																"id": 1783,
																"name": "DiamondStorage",
																"nodeType": "IdentifierPath",
																"referencedDeclaration": 1760,
																"src": "1574:14:11"
															},
															"referencedDeclaration": 1760,
															"src": "1574:14:11",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																"typeString": "struct LibDiamond.DiamondStorage"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 1788,
												"initialValue": {
													"arguments": [],
													"expression": {
														"argumentTypes": [],
														"id": 1786,
														"name": "diamondStorage",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1772,
														"src": "1602:14:11",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$1760_storage_ptr_$",
															"typeString": "function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"
														}
													},
													"id": 1787,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "1602:16:11",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
														"typeString": "struct LibDiamond.DiamondStorage storage pointer"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "1574:44:11"
											},
											{
												"assignments": [
													1790
												],
												"declarations": [
													{
														"constant": false,
														"id": 1790,
														"mutability": "mutable",
														"name": "previousOwner",
														"nameLocation": "1632:13:11",
														"nodeType": "VariableDeclaration",
														"scope": 1805,
														"src": "1624:21:11",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														},
														"typeName": {
															"id": 1789,
															"name": "address",
															"nodeType": "ElementaryTypeName",
															"src": "1624:7:11",
															"stateMutability": "nonpayable",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 1793,
												"initialValue": {
													"expression": {
														"id": 1791,
														"name": "ds",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1785,
														"src": "1648:2:11",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
															"typeString": "struct LibDiamond.DiamondStorage storage pointer"
														}
													},
													"id": 1792,
													"isConstant": false,
													"isLValue": true,
													"isPure": false,
													"lValueRequested": false,
													"memberName": "contractOwner",
													"nodeType": "MemberAccess",
													"referencedDeclaration": 1759,
													"src": "1648:16:11",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "1624:40:11"
											},
											{
												"expression": {
													"id": 1798,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"expression": {
															"id": 1794,
															"name": "ds",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1785,
															"src": "1670:2:11",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																"typeString": "struct LibDiamond.DiamondStorage storage pointer"
															}
														},
														"id": 1796,
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"memberName": "contractOwner",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 1759,
														"src": "1670:16:11",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"id": 1797,
														"name": "_newOwner",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1780,
														"src": "1689:9:11",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "1670:28:11",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"id": 1799,
												"nodeType": "ExpressionStatement",
												"src": "1670:28:11"
											},
											{
												"eventCall": {
													"arguments": [
														{
															"id": 1801,
															"name": "previousOwner",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1790,
															"src": "1730:13:11",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1802,
															"name": "_newOwner",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1780,
															"src": "1745:9:11",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														],
														"id": 1800,
														"name": "OwnershipTransferred",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1778,
														"src": "1709:20:11",
														"typeDescriptions": {
															"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$",
															"typeString": "function (address,address)"
														}
													},
													"id": 1803,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "1709:46:11",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1804,
												"nodeType": "EmitStatement",
												"src": "1704:51:11"
											}
										]
									},
									"id": 1806,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "setContractOwner",
									"nameLocation": "1523:16:11",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1781,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1780,
												"mutability": "mutable",
												"name": "_newOwner",
												"nameLocation": "1548:9:11",
												"nodeType": "VariableDeclaration",
												"scope": 1806,
												"src": "1540:17:11",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1779,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1540:7:11",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1539:19:11"
									},
									"returnParameters": {
										"id": 1782,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1568:0:11"
									},
									"scope": 2554,
									"src": "1514:246:11",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 1817,
										"nodeType": "Block",
										"src": "1836:58:11",
										"statements": [
											{
												"expression": {
													"id": 1815,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"id": 1811,
														"name": "contractOwner_",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1809,
														"src": "1842:14:11",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"expression": {
															"arguments": [],
															"expression": {
																"argumentTypes": [],
																"id": 1812,
																"name": "diamondStorage",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 1772,
																"src": "1859:14:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$1760_storage_ptr_$",
																	"typeString": "function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"
																}
															},
															"id": 1813,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "1859:16:11",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																"typeString": "struct LibDiamond.DiamondStorage storage pointer"
															}
														},
														"id": 1814,
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "contractOwner",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 1759,
														"src": "1859:30:11",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "1842:47:11",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"id": 1816,
												"nodeType": "ExpressionStatement",
												"src": "1842:47:11"
											}
										]
									},
									"id": 1818,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "contractOwner",
									"nameLocation": "1773:13:11",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1807,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1786:2:11"
									},
									"returnParameters": {
										"id": 1810,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1809,
												"mutability": "mutable",
												"name": "contractOwner_",
												"nameLocation": "1820:14:11",
												"nodeType": "VariableDeclaration",
												"scope": 1818,
												"src": "1812:22:11",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1808,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1812:7:11",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1811:24:11"
									},
									"scope": 2554,
									"src": "1764:130:11",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 1831,
										"nodeType": "Block",
										"src": "1946:102:11",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"commonType": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															"id": 1827,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"expression": {
																	"id": 1822,
																	"name": "msg",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967281,
																	"src": "1960:3:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_message",
																		"typeString": "msg"
																	}
																},
																"id": 1823,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"memberName": "sender",
																"nodeType": "MemberAccess",
																"src": "1960:10:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "==",
															"rightExpression": {
																"expression": {
																	"arguments": [],
																	"expression": {
																		"argumentTypes": [],
																		"id": 1824,
																		"name": "diamondStorage",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 1772,
																		"src": "1974:14:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$1760_storage_ptr_$",
																			"typeString": "function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"
																		}
																	},
																	"id": 1825,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "functionCall",
																	"lValueRequested": false,
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "1974:16:11",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																		"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																	}
																},
																"id": 1826,
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"memberName": "contractOwner",
																"nodeType": "MemberAccess",
																"referencedDeclaration": 1759,
																"src": "1974:30:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"src": "1960:44:11",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e6572",
															"id": 1828,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "2006:36:11",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_0d4ae41009c51fd276653a54d7793c24f266ddc8c56ce21f8be5e2c6595ab3ac",
																"typeString": "literal_string \"LibDiamond: Must be contract owner\""
															},
															"value": "LibDiamond: Must be contract owner"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															{
																"typeIdentifier": "t_stringliteral_0d4ae41009c51fd276653a54d7793c24f266ddc8c56ce21f8be5e2c6595ab3ac",
																"typeString": "literal_string \"LibDiamond: Must be contract owner\""
															}
														],
														"id": 1821,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "1952:7:11",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 1829,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "1952:91:11",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1830,
												"nodeType": "ExpressionStatement",
												"src": "1952:91:11"
											}
										]
									},
									"id": 1832,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "enforceIsContractOwner",
									"nameLocation": "1907:22:11",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1819,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1929:2:11"
									},
									"returnParameters": {
										"id": 1820,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1946:0:11"
									},
									"scope": 2554,
									"src": "1898:150:11",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"anonymous": false,
									"id": 1842,
									"name": "DiamondCut",
									"nameLocation": "2058:10:11",
									"nodeType": "EventDefinition",
									"parameters": {
										"id": 1841,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1836,
												"indexed": false,
												"mutability": "mutable",
												"name": "_diamondCut",
												"nameLocation": "2092:11:11",
												"nodeType": "VariableDeclaration",
												"scope": 1842,
												"src": "2069:34:11",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_array$_t_struct$_FacetCut_$1559_memory_ptr_$dyn_memory_ptr",
													"typeString": "struct IDiamondCut.FacetCut[]"
												},
												"typeName": {
													"baseType": {
														"id": 1834,
														"nodeType": "UserDefinedTypeName",
														"pathNode": {
															"id": 1833,
															"name": "IDiamondCut.FacetCut",
															"nodeType": "IdentifierPath",
															"referencedDeclaration": 1559,
															"src": "2069:20:11"
														},
														"referencedDeclaration": 1559,
														"src": "2069:20:11",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_FacetCut_$1559_storage_ptr",
															"typeString": "struct IDiamondCut.FacetCut"
														}
													},
													"id": 1835,
													"nodeType": "ArrayTypeName",
													"src": "2069:22:11",
													"typeDescriptions": {
														"typeIdentifier": "t_array$_t_struct$_FacetCut_$1559_storage_$dyn_storage_ptr",
														"typeString": "struct IDiamondCut.FacetCut[]"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1838,
												"indexed": false,
												"mutability": "mutable",
												"name": "_init",
												"nameLocation": "2113:5:11",
												"nodeType": "VariableDeclaration",
												"scope": 1842,
												"src": "2105:13:11",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1837,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2105:7:11",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1840,
												"indexed": false,
												"mutability": "mutable",
												"name": "_calldata",
												"nameLocation": "2126:9:11",
												"nodeType": "VariableDeclaration",
												"scope": 1842,
												"src": "2120:15:11",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 1839,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "2120:5:11",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2068:68:11"
									},
									"src": "2052:85:11"
								},
								{
									"body": {
										"id": 1945,
										"nodeType": "Block",
										"src": "2313:840:11",
										"statements": [
											{
												"body": {
													"id": 1932,
													"nodeType": "Block",
													"src": "2391:662:11",
													"statements": [
														{
															"assignments": [
																1867
															],
															"declarations": [
																{
																	"constant": false,
																	"id": 1867,
																	"mutability": "mutable",
																	"name": "action",
																	"nameLocation": "2426:6:11",
																	"nodeType": "VariableDeclaration",
																	"scope": 1932,
																	"src": "2399:33:11",
																	"stateVariable": false,
																	"storageLocation": "default",
																	"typeDescriptions": {
																		"typeIdentifier": "t_enum$_FacetCutAction_$1550",
																		"typeString": "enum IDiamondCut.FacetCutAction"
																	},
																	"typeName": {
																		"id": 1866,
																		"nodeType": "UserDefinedTypeName",
																		"pathNode": {
																			"id": 1865,
																			"name": "IDiamondCut.FacetCutAction",
																			"nodeType": "IdentifierPath",
																			"referencedDeclaration": 1550,
																			"src": "2399:26:11"
																		},
																		"referencedDeclaration": 1550,
																		"src": "2399:26:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_enum$_FacetCutAction_$1550",
																			"typeString": "enum IDiamondCut.FacetCutAction"
																		}
																	},
																	"visibility": "internal"
																}
															],
															"id": 1872,
															"initialValue": {
																"expression": {
																	"baseExpression": {
																		"id": 1868,
																		"name": "_diamondCut",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 1846,
																		"src": "2435:11:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_array$_t_struct$_FacetCut_$1559_memory_ptr_$dyn_memory_ptr",
																			"typeString": "struct IDiamondCut.FacetCut memory[] memory"
																		}
																	},
																	"id": 1870,
																	"indexExpression": {
																		"id": 1869,
																		"name": "facetIndex",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 1854,
																		"src": "2447:10:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": false,
																	"nodeType": "IndexAccess",
																	"src": "2435:23:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_struct$_FacetCut_$1559_memory_ptr",
																		"typeString": "struct IDiamondCut.FacetCut memory"
																	}
																},
																"id": 1871,
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"memberName": "action",
																"nodeType": "MemberAccess",
																"referencedDeclaration": 1555,
																"src": "2435:30:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_enum$_FacetCutAction_$1550",
																	"typeString": "enum IDiamondCut.FacetCutAction"
																}
															},
															"nodeType": "VariableDeclarationStatement",
															"src": "2399:66:11"
														},
														{
															"condition": {
																"commonType": {
																	"typeIdentifier": "t_enum$_FacetCutAction_$1550",
																	"typeString": "enum IDiamondCut.FacetCutAction"
																},
																"id": 1877,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 1873,
																	"name": "action",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 1867,
																	"src": "2477:6:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_enum$_FacetCutAction_$1550",
																		"typeString": "enum IDiamondCut.FacetCutAction"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "==",
																"rightExpression": {
																	"expression": {
																		"expression": {
																			"id": 1874,
																			"name": "IDiamondCut",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 1582,
																			"src": "2487:11:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_contract$_IDiamondCut_$1582_$",
																				"typeString": "type(contract IDiamondCut)"
																			}
																		},
																		"id": 1875,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberName": "FacetCutAction",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 1550,
																		"src": "2487:26:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_enum$_FacetCutAction_$1550_$",
																			"typeString": "type(enum IDiamondCut.FacetCutAction)"
																		}
																	},
																	"id": 1876,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"memberName": "Add",
																	"nodeType": "MemberAccess",
																	"referencedDeclaration": 1547,
																	"src": "2487:30:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_enum$_FacetCutAction_$1550",
																		"typeString": "enum IDiamondCut.FacetCutAction"
																	}
																},
																"src": "2477:40:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"falseBody": {
																"condition": {
																	"commonType": {
																		"typeIdentifier": "t_enum$_FacetCutAction_$1550",
																		"typeString": "enum IDiamondCut.FacetCutAction"
																	},
																	"id": 1894,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"leftExpression": {
																		"id": 1890,
																		"name": "action",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 1867,
																		"src": "2641:6:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_enum$_FacetCutAction_$1550",
																			"typeString": "enum IDiamondCut.FacetCutAction"
																		}
																	},
																	"nodeType": "BinaryOperation",
																	"operator": "==",
																	"rightExpression": {
																		"expression": {
																			"expression": {
																				"id": 1891,
																				"name": "IDiamondCut",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 1582,
																				"src": "2651:11:11",
																				"typeDescriptions": {
																					"typeIdentifier": "t_type$_t_contract$_IDiamondCut_$1582_$",
																					"typeString": "type(contract IDiamondCut)"
																				}
																			},
																			"id": 1892,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"memberName": "FacetCutAction",
																			"nodeType": "MemberAccess",
																			"referencedDeclaration": 1550,
																			"src": "2651:26:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_type$_t_enum$_FacetCutAction_$1550_$",
																				"typeString": "type(enum IDiamondCut.FacetCutAction)"
																			}
																		},
																		"id": 1893,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"memberName": "Replace",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 1548,
																		"src": "2651:34:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_enum$_FacetCutAction_$1550",
																			"typeString": "enum IDiamondCut.FacetCutAction"
																		}
																	},
																	"src": "2641:44:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																"falseBody": {
																	"condition": {
																		"commonType": {
																			"typeIdentifier": "t_enum$_FacetCutAction_$1550",
																			"typeString": "enum IDiamondCut.FacetCutAction"
																		},
																		"id": 1911,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 1907,
																			"name": "action",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 1867,
																			"src": "2813:6:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_enum$_FacetCutAction_$1550",
																				"typeString": "enum IDiamondCut.FacetCutAction"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "==",
																		"rightExpression": {
																			"expression": {
																				"expression": {
																					"id": 1908,
																					"name": "IDiamondCut",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 1582,
																					"src": "2823:11:11",
																					"typeDescriptions": {
																						"typeIdentifier": "t_type$_t_contract$_IDiamondCut_$1582_$",
																						"typeString": "type(contract IDiamondCut)"
																					}
																				},
																				"id": 1909,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"memberName": "FacetCutAction",
																				"nodeType": "MemberAccess",
																				"referencedDeclaration": 1550,
																				"src": "2823:26:11",
																				"typeDescriptions": {
																					"typeIdentifier": "t_type$_t_enum$_FacetCutAction_$1550_$",
																					"typeString": "type(enum IDiamondCut.FacetCutAction)"
																				}
																			},
																			"id": 1910,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"lValueRequested": false,
																			"memberName": "Remove",
																			"nodeType": "MemberAccess",
																			"referencedDeclaration": 1549,
																			"src": "2823:33:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_enum$_FacetCutAction_$1550",
																				"typeString": "enum IDiamondCut.FacetCutAction"
																			}
																		},
																		"src": "2813:43:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"falseBody": {
																		"id": 1928,
																		"nodeType": "Block",
																		"src": "2979:68:11",
																		"statements": [
																			{
																				"expression": {
																					"arguments": [
																						{
																							"hexValue": "4c69624469616d6f6e644375743a20496e636f7272656374204661636574437574416374696f6e",
																							"id": 1925,
																							"isConstant": false,
																							"isLValue": false,
																							"isPure": true,
																							"kind": "string",
																							"lValueRequested": false,
																							"nodeType": "Literal",
																							"src": "2996:41:11",
																							"typeDescriptions": {
																								"typeIdentifier": "t_stringliteral_48267d8daf5ea9c6bbad1fe9c53dc4c04a2a01b2b85bad432956cf42f45b2f54",
																								"typeString": "literal_string \"LibDiamondCut: Incorrect FacetCutAction\""
																							},
																							"value": "LibDiamondCut: Incorrect FacetCutAction"
																						}
																					],
																					"expression": {
																						"argumentTypes": [
																							{
																								"typeIdentifier": "t_stringliteral_48267d8daf5ea9c6bbad1fe9c53dc4c04a2a01b2b85bad432956cf42f45b2f54",
																								"typeString": "literal_string \"LibDiamondCut: Incorrect FacetCutAction\""
																							}
																						],
																						"id": 1924,
																						"name": "revert",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [
																							4294967277,
																							4294967277
																						],
																						"referencedDeclaration": 4294967277,
																						"src": "2989:6:11",
																						"typeDescriptions": {
																							"typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
																							"typeString": "function (string memory) pure"
																						}
																					},
																					"id": 1926,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"kind": "functionCall",
																					"lValueRequested": false,
																					"names": [],
																					"nodeType": "FunctionCall",
																					"src": "2989:49:11",
																					"tryCall": false,
																					"typeDescriptions": {
																						"typeIdentifier": "t_tuple$__$",
																						"typeString": "tuple()"
																					}
																				},
																				"id": 1927,
																				"nodeType": "ExpressionStatement",
																				"src": "2989:49:11"
																			}
																		]
																	},
																	"id": 1929,
																	"nodeType": "IfStatement",
																	"src": "2809:238:11",
																	"trueBody": {
																		"id": 1923,
																		"nodeType": "Block",
																		"src": "2858:115:11",
																		"statements": [
																			{
																				"expression": {
																					"arguments": [
																						{
																							"expression": {
																								"baseExpression": {
																									"id": 1913,
																									"name": "_diamondCut",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 1846,
																									"src": "2884:11:11",
																									"typeDescriptions": {
																										"typeIdentifier": "t_array$_t_struct$_FacetCut_$1559_memory_ptr_$dyn_memory_ptr",
																										"typeString": "struct IDiamondCut.FacetCut memory[] memory"
																									}
																								},
																								"id": 1915,
																								"indexExpression": {
																									"id": 1914,
																									"name": "facetIndex",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 1854,
																									"src": "2896:10:11",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"isConstant": false,
																								"isLValue": true,
																								"isPure": false,
																								"lValueRequested": false,
																								"nodeType": "IndexAccess",
																								"src": "2884:23:11",
																								"typeDescriptions": {
																									"typeIdentifier": "t_struct$_FacetCut_$1559_memory_ptr",
																									"typeString": "struct IDiamondCut.FacetCut memory"
																								}
																							},
																							"id": 1916,
																							"isConstant": false,
																							"isLValue": true,
																							"isPure": false,
																							"lValueRequested": false,
																							"memberName": "facetAddress",
																							"nodeType": "MemberAccess",
																							"referencedDeclaration": 1552,
																							"src": "2884:36:11",
																							"typeDescriptions": {
																								"typeIdentifier": "t_address",
																								"typeString": "address"
																							}
																						},
																						{
																							"expression": {
																								"baseExpression": {
																									"id": 1917,
																									"name": "_diamondCut",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 1846,
																									"src": "2922:11:11",
																									"typeDescriptions": {
																										"typeIdentifier": "t_array$_t_struct$_FacetCut_$1559_memory_ptr_$dyn_memory_ptr",
																										"typeString": "struct IDiamondCut.FacetCut memory[] memory"
																									}
																								},
																								"id": 1919,
																								"indexExpression": {
																									"id": 1918,
																									"name": "facetIndex",
																									"nodeType": "Identifier",
																									"overloadedDeclarations": [],
																									"referencedDeclaration": 1854,
																									"src": "2934:10:11",
																									"typeDescriptions": {
																										"typeIdentifier": "t_uint256",
																										"typeString": "uint256"
																									}
																								},
																								"isConstant": false,
																								"isLValue": true,
																								"isPure": false,
																								"lValueRequested": false,
																								"nodeType": "IndexAccess",
																								"src": "2922:23:11",
																								"typeDescriptions": {
																									"typeIdentifier": "t_struct$_FacetCut_$1559_memory_ptr",
																									"typeString": "struct IDiamondCut.FacetCut memory"
																								}
																							},
																							"id": 1920,
																							"isConstant": false,
																							"isLValue": true,
																							"isPure": false,
																							"lValueRequested": false,
																							"memberName": "functionSelectors",
																							"nodeType": "MemberAccess",
																							"referencedDeclaration": 1558,
																							"src": "2922:41:11",
																							"typeDescriptions": {
																								"typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr",
																								"typeString": "bytes4[] memory"
																							}
																						}
																					],
																					"expression": {
																						"argumentTypes": [
																							{
																								"typeIdentifier": "t_address",
																								"typeString": "address"
																							},
																							{
																								"typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr",
																								"typeString": "bytes4[] memory"
																							}
																						],
																						"id": 1912,
																						"name": "removeFunctions",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 2216,
																						"src": "2868:15:11",
																						"typeDescriptions": {
																							"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_bytes4_$dyn_memory_ptr_$returns$__$",
																							"typeString": "function (address,bytes4[] memory)"
																						}
																					},
																					"id": 1921,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": false,
																					"kind": "functionCall",
																					"lValueRequested": false,
																					"names": [],
																					"nodeType": "FunctionCall",
																					"src": "2868:96:11",
																					"tryCall": false,
																					"typeDescriptions": {
																						"typeIdentifier": "t_tuple$__$",
																						"typeString": "tuple()"
																					}
																				},
																				"id": 1922,
																				"nodeType": "ExpressionStatement",
																				"src": "2868:96:11"
																			}
																		]
																	}
																},
																"id": 1930,
																"nodeType": "IfStatement",
																"src": "2637:410:11",
																"trueBody": {
																	"id": 1906,
																	"nodeType": "Block",
																	"src": "2687:116:11",
																	"statements": [
																		{
																			"expression": {
																				"arguments": [
																					{
																						"expression": {
																							"baseExpression": {
																								"id": 1896,
																								"name": "_diamondCut",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 1846,
																								"src": "2714:11:11",
																								"typeDescriptions": {
																									"typeIdentifier": "t_array$_t_struct$_FacetCut_$1559_memory_ptr_$dyn_memory_ptr",
																									"typeString": "struct IDiamondCut.FacetCut memory[] memory"
																								}
																							},
																							"id": 1898,
																							"indexExpression": {
																								"id": 1897,
																								"name": "facetIndex",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 1854,
																								"src": "2726:10:11",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"isConstant": false,
																							"isLValue": true,
																							"isPure": false,
																							"lValueRequested": false,
																							"nodeType": "IndexAccess",
																							"src": "2714:23:11",
																							"typeDescriptions": {
																								"typeIdentifier": "t_struct$_FacetCut_$1559_memory_ptr",
																								"typeString": "struct IDiamondCut.FacetCut memory"
																							}
																						},
																						"id": 1899,
																						"isConstant": false,
																						"isLValue": true,
																						"isPure": false,
																						"lValueRequested": false,
																						"memberName": "facetAddress",
																						"nodeType": "MemberAccess",
																						"referencedDeclaration": 1552,
																						"src": "2714:36:11",
																						"typeDescriptions": {
																							"typeIdentifier": "t_address",
																							"typeString": "address"
																						}
																					},
																					{
																						"expression": {
																							"baseExpression": {
																								"id": 1900,
																								"name": "_diamondCut",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 1846,
																								"src": "2752:11:11",
																								"typeDescriptions": {
																									"typeIdentifier": "t_array$_t_struct$_FacetCut_$1559_memory_ptr_$dyn_memory_ptr",
																									"typeString": "struct IDiamondCut.FacetCut memory[] memory"
																								}
																							},
																							"id": 1902,
																							"indexExpression": {
																								"id": 1901,
																								"name": "facetIndex",
																								"nodeType": "Identifier",
																								"overloadedDeclarations": [],
																								"referencedDeclaration": 1854,
																								"src": "2764:10:11",
																								"typeDescriptions": {
																									"typeIdentifier": "t_uint256",
																									"typeString": "uint256"
																								}
																							},
																							"isConstant": false,
																							"isLValue": true,
																							"isPure": false,
																							"lValueRequested": false,
																							"nodeType": "IndexAccess",
																							"src": "2752:23:11",
																							"typeDescriptions": {
																								"typeIdentifier": "t_struct$_FacetCut_$1559_memory_ptr",
																								"typeString": "struct IDiamondCut.FacetCut memory"
																							}
																						},
																						"id": 1903,
																						"isConstant": false,
																						"isLValue": true,
																						"isPure": false,
																						"lValueRequested": false,
																						"memberName": "functionSelectors",
																						"nodeType": "MemberAccess",
																						"referencedDeclaration": 1558,
																						"src": "2752:41:11",
																						"typeDescriptions": {
																							"typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr",
																							"typeString": "bytes4[] memory"
																						}
																					}
																				],
																				"expression": {
																					"argumentTypes": [
																						{
																							"typeIdentifier": "t_address",
																							"typeString": "address"
																						},
																						{
																							"typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr",
																							"typeString": "bytes4[] memory"
																						}
																					],
																					"id": 1895,
																					"name": "replaceFunctions",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 2151,
																					"src": "2697:16:11",
																					"typeDescriptions": {
																						"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_bytes4_$dyn_memory_ptr_$returns$__$",
																						"typeString": "function (address,bytes4[] memory)"
																					}
																				},
																				"id": 1904,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"kind": "functionCall",
																				"lValueRequested": false,
																				"names": [],
																				"nodeType": "FunctionCall",
																				"src": "2697:97:11",
																				"tryCall": false,
																				"typeDescriptions": {
																					"typeIdentifier": "t_tuple$__$",
																					"typeString": "tuple()"
																				}
																			},
																			"id": 1905,
																			"nodeType": "ExpressionStatement",
																			"src": "2697:97:11"
																		}
																	]
																}
															},
															"id": 1931,
															"nodeType": "IfStatement",
															"src": "2473:574:11",
															"trueBody": {
																"id": 1889,
																"nodeType": "Block",
																"src": "2519:112:11",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"expression": {
																						"baseExpression": {
																							"id": 1879,
																							"name": "_diamondCut",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 1846,
																							"src": "2542:11:11",
																							"typeDescriptions": {
																								"typeIdentifier": "t_array$_t_struct$_FacetCut_$1559_memory_ptr_$dyn_memory_ptr",
																								"typeString": "struct IDiamondCut.FacetCut memory[] memory"
																							}
																						},
																						"id": 1881,
																						"indexExpression": {
																							"id": 1880,
																							"name": "facetIndex",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 1854,
																							"src": "2554:10:11",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"isConstant": false,
																						"isLValue": true,
																						"isPure": false,
																						"lValueRequested": false,
																						"nodeType": "IndexAccess",
																						"src": "2542:23:11",
																						"typeDescriptions": {
																							"typeIdentifier": "t_struct$_FacetCut_$1559_memory_ptr",
																							"typeString": "struct IDiamondCut.FacetCut memory"
																						}
																					},
																					"id": 1882,
																					"isConstant": false,
																					"isLValue": true,
																					"isPure": false,
																					"lValueRequested": false,
																					"memberName": "facetAddress",
																					"nodeType": "MemberAccess",
																					"referencedDeclaration": 1552,
																					"src": "2542:36:11",
																					"typeDescriptions": {
																						"typeIdentifier": "t_address",
																						"typeString": "address"
																					}
																				},
																				{
																					"expression": {
																						"baseExpression": {
																							"id": 1883,
																							"name": "_diamondCut",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 1846,
																							"src": "2580:11:11",
																							"typeDescriptions": {
																								"typeIdentifier": "t_array$_t_struct$_FacetCut_$1559_memory_ptr_$dyn_memory_ptr",
																								"typeString": "struct IDiamondCut.FacetCut memory[] memory"
																							}
																						},
																						"id": 1885,
																						"indexExpression": {
																							"id": 1884,
																							"name": "facetIndex",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 1854,
																							"src": "2592:10:11",
																							"typeDescriptions": {
																								"typeIdentifier": "t_uint256",
																								"typeString": "uint256"
																							}
																						},
																						"isConstant": false,
																						"isLValue": true,
																						"isPure": false,
																						"lValueRequested": false,
																						"nodeType": "IndexAccess",
																						"src": "2580:23:11",
																						"typeDescriptions": {
																							"typeIdentifier": "t_struct$_FacetCut_$1559_memory_ptr",
																							"typeString": "struct IDiamondCut.FacetCut memory"
																						}
																					},
																					"id": 1886,
																					"isConstant": false,
																					"isLValue": true,
																					"isPure": false,
																					"lValueRequested": false,
																					"memberName": "functionSelectors",
																					"nodeType": "MemberAccess",
																					"referencedDeclaration": 1558,
																					"src": "2580:41:11",
																					"typeDescriptions": {
																						"typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr",
																						"typeString": "bytes4[] memory"
																					}
																				}
																			],
																			"expression": {
																				"argumentTypes": [
																					{
																						"typeIdentifier": "t_address",
																						"typeString": "address"
																					},
																					{
																						"typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr",
																						"typeString": "bytes4[] memory"
																					}
																				],
																				"id": 1878,
																				"name": "addFunctions",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 2047,
																				"src": "2529:12:11",
																				"typeDescriptions": {
																					"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_bytes4_$dyn_memory_ptr_$returns$__$",
																					"typeString": "function (address,bytes4[] memory)"
																				}
																			},
																			"id": 1887,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"kind": "functionCall",
																			"lValueRequested": false,
																			"names": [],
																			"nodeType": "FunctionCall",
																			"src": "2529:93:11",
																			"tryCall": false,
																			"typeDescriptions": {
																				"typeIdentifier": "t_tuple$__$",
																				"typeString": "tuple()"
																			}
																		},
																		"id": 1888,
																		"nodeType": "ExpressionStatement",
																		"src": "2529:93:11"
																	}
																]
															}
														}
													]
												},
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 1859,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 1856,
														"name": "facetIndex",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1854,
														"src": "2344:10:11",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "<",
													"rightExpression": {
														"expression": {
															"id": 1857,
															"name": "_diamondCut",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1846,
															"src": "2357:11:11",
															"typeDescriptions": {
																"typeIdentifier": "t_array$_t_struct$_FacetCut_$1559_memory_ptr_$dyn_memory_ptr",
																"typeString": "struct IDiamondCut.FacetCut memory[] memory"
															}
														},
														"id": 1858,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "length",
														"nodeType": "MemberAccess",
														"src": "2357:18:11",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "2344:31:11",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 1933,
												"initializationExpression": {
													"assignments": [
														1854
													],
													"declarations": [
														{
															"constant": false,
															"id": 1854,
															"mutability": "mutable",
															"name": "facetIndex",
															"nameLocation": "2332:10:11",
															"nodeType": "VariableDeclaration",
															"scope": 1933,
															"src": "2324:18:11",
															"stateVariable": false,
															"storageLocation": "default",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"typeName": {
																"id": 1853,
																"name": "uint256",
																"nodeType": "ElementaryTypeName",
																"src": "2324:7:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"visibility": "internal"
														}
													],
													"id": 1855,
													"nodeType": "VariableDeclarationStatement",
													"src": "2324:18:11"
												},
												"loopExpression": {
													"expression": {
														"id": 1861,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"nodeType": "UnaryOperation",
														"operator": "++",
														"prefix": false,
														"src": "2377:12:11",
														"subExpression": {
															"id": 1860,
															"name": "facetIndex",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1854,
															"src": "2377:10:11",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"id": 1862,
													"nodeType": "ExpressionStatement",
													"src": "2377:12:11"
												},
												"nodeType": "ForStatement",
												"src": "2319:734:11"
											},
											{
												"eventCall": {
													"arguments": [
														{
															"id": 1935,
															"name": "_diamondCut",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1846,
															"src": "3074:11:11",
															"typeDescriptions": {
																"typeIdentifier": "t_array$_t_struct$_FacetCut_$1559_memory_ptr_$dyn_memory_ptr",
																"typeString": "struct IDiamondCut.FacetCut memory[] memory"
															}
														},
														{
															"id": 1936,
															"name": "_init",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1848,
															"src": "3087:5:11",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1937,
															"name": "_calldata",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1850,
															"src": "3094:9:11",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_array$_t_struct$_FacetCut_$1559_memory_ptr_$dyn_memory_ptr",
																"typeString": "struct IDiamondCut.FacetCut memory[] memory"
															},
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 1934,
														"name": "DiamondCut",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1842,
														"src": "3063:10:11",
														"typeDescriptions": {
															"typeIdentifier": "t_function_event_nonpayable$_t_array$_t_struct$_FacetCut_$1559_memory_ptr_$dyn_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (struct IDiamondCut.FacetCut memory[] memory,address,bytes memory)"
														}
													},
													"id": 1938,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3063:41:11",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1939,
												"nodeType": "EmitStatement",
												"src": "3058:46:11"
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 1941,
															"name": "_init",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1848,
															"src": "3131:5:11",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"id": 1942,
															"name": "_calldata",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1850,
															"src": "3138:9:11",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 1940,
														"name": "initializeDiamondCut",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2534,
														"src": "3110:20:11",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (address,bytes memory)"
														}
													},
													"id": 1943,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3110:38:11",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1944,
												"nodeType": "ExpressionStatement",
												"src": "3110:38:11"
											}
										]
									},
									"id": 1946,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "diamondCut",
									"nameLocation": "2195:10:11",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1851,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1846,
												"mutability": "mutable",
												"name": "_diamondCut",
												"nameLocation": "2241:11:11",
												"nodeType": "VariableDeclaration",
												"scope": 1946,
												"src": "2211:41:11",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_array$_t_struct$_FacetCut_$1559_memory_ptr_$dyn_memory_ptr",
													"typeString": "struct IDiamondCut.FacetCut[]"
												},
												"typeName": {
													"baseType": {
														"id": 1844,
														"nodeType": "UserDefinedTypeName",
														"pathNode": {
															"id": 1843,
															"name": "IDiamondCut.FacetCut",
															"nodeType": "IdentifierPath",
															"referencedDeclaration": 1559,
															"src": "2211:20:11"
														},
														"referencedDeclaration": 1559,
														"src": "2211:20:11",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_FacetCut_$1559_storage_ptr",
															"typeString": "struct IDiamondCut.FacetCut"
														}
													},
													"id": 1845,
													"nodeType": "ArrayTypeName",
													"src": "2211:22:11",
													"typeDescriptions": {
														"typeIdentifier": "t_array$_t_struct$_FacetCut_$1559_storage_$dyn_storage_ptr",
														"typeString": "struct IDiamondCut.FacetCut[]"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1848,
												"mutability": "mutable",
												"name": "_init",
												"nameLocation": "2266:5:11",
												"nodeType": "VariableDeclaration",
												"scope": 1946,
												"src": "2258:13:11",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1847,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "2258:7:11",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1850,
												"mutability": "mutable",
												"name": "_calldata",
												"nameLocation": "2290:9:11",
												"nodeType": "VariableDeclaration",
												"scope": 1946,
												"src": "2277:22:11",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 1849,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "2277:5:11",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2205:98:11"
									},
									"returnParameters": {
										"id": 1852,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2313:0:11"
									},
									"scope": 2554,
									"src": "2186:967:11",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2046,
										"nodeType": "Block",
										"src": "3247:905:11",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 1958,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"expression": {
																	"id": 1955,
																	"name": "_functionSelectors",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 1951,
																	"src": "3261:18:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr",
																		"typeString": "bytes4[] memory"
																	}
																},
																"id": 1956,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"memberName": "length",
																"nodeType": "MemberAccess",
																"src": "3261:25:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"hexValue": "30",
																"id": 1957,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "3289:1:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "3261:29:11",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e20666163657420746f20637574",
															"id": 1959,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3292:45:11",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_1ffc682bcfedefd5e93ba9ed0c2d1bc0b18319886e3b4bd28a03a3d3729f85c0",
																"typeString": "literal_string \"LibDiamondCut: No selectors in facet to cut\""
															},
															"value": "LibDiamondCut: No selectors in facet to cut"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															{
																"typeIdentifier": "t_stringliteral_1ffc682bcfedefd5e93ba9ed0c2d1bc0b18319886e3b4bd28a03a3d3729f85c0",
																"typeString": "literal_string \"LibDiamondCut: No selectors in facet to cut\""
															}
														],
														"id": 1954,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "3253:7:11",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 1960,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3253:85:11",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1961,
												"nodeType": "ExpressionStatement",
												"src": "3253:85:11"
											},
											{
												"assignments": [
													1964
												],
												"declarations": [
													{
														"constant": false,
														"id": 1964,
														"mutability": "mutable",
														"name": "ds",
														"nameLocation": "3367:2:11",
														"nodeType": "VariableDeclaration",
														"scope": 2046,
														"src": "3344:25:11",
														"stateVariable": false,
														"storageLocation": "storage",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
															"typeString": "struct LibDiamond.DiamondStorage"
														},
														"typeName": {
															"id": 1963,
															"nodeType": "UserDefinedTypeName",
															"pathNode": {
																"id": 1962,
																"name": "DiamondStorage",
																"nodeType": "IdentifierPath",
																"referencedDeclaration": 1760,
																"src": "3344:14:11"
															},
															"referencedDeclaration": 1760,
															"src": "3344:14:11",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																"typeString": "struct LibDiamond.DiamondStorage"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 1967,
												"initialValue": {
													"arguments": [],
													"expression": {
														"argumentTypes": [],
														"id": 1965,
														"name": "diamondStorage",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1772,
														"src": "3372:14:11",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$1760_storage_ptr_$",
															"typeString": "function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"
														}
													},
													"id": 1966,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3372:16:11",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
														"typeString": "struct LibDiamond.DiamondStorage storage pointer"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "3344:44:11"
											},
											{
												"expression": {
													"arguments": [
														{
															"commonType": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															"id": 1974,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 1969,
																"name": "_facetAddress",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 1948,
																"src": "3402:13:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "!=",
															"rightExpression": {
																"arguments": [
																	{
																		"hexValue": "30",
																		"id": 1972,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "3427:1:11",
																		"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": 1971,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "3419:7:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_address_$",
																		"typeString": "type(address)"
																	},
																	"typeName": {
																		"id": 1970,
																		"name": "address",
																		"nodeType": "ElementaryTypeName",
																		"src": "3419:7:11",
																		"typeDescriptions": {}
																	}
																},
																"id": 1973,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "typeConversion",
																"lValueRequested": false,
																"names": [],
																"nodeType": "FunctionCall",
																"src": "3419:10:11",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"src": "3402:27:11",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "4c69624469616d6f6e644375743a204164642066616365742063616e27742062652061646472657373283029",
															"id": 1975,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "3431:46:11",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_64609d8b93c93a06b98d7db7a87b04044cd4a52c5661d603bb9b90ad8b914a3a",
																"typeString": "literal_string \"LibDiamondCut: Add facet can't be address(0)\""
															},
															"value": "LibDiamondCut: Add facet can't be address(0)"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															{
																"typeIdentifier": "t_stringliteral_64609d8b93c93a06b98d7db7a87b04044cd4a52c5661d603bb9b90ad8b914a3a",
																"typeString": "literal_string \"LibDiamondCut: Add facet can't be address(0)\""
															}
														],
														"id": 1968,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "3394:7:11",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 1976,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3394:84:11",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 1977,
												"nodeType": "ExpressionStatement",
												"src": "3394:84:11"
											},
											{
												"assignments": [
													1979
												],
												"declarations": [
													{
														"constant": false,
														"id": 1979,
														"mutability": "mutable",
														"name": "selectorPosition",
														"nameLocation": "3491:16:11",
														"nodeType": "VariableDeclaration",
														"scope": 2046,
														"src": "3484:23:11",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint96",
															"typeString": "uint96"
														},
														"typeName": {
															"id": 1978,
															"name": "uint96",
															"nodeType": "ElementaryTypeName",
															"src": "3484:6:11",
															"typeDescriptions": {
																"typeIdentifier": "t_uint96",
																"typeString": "uint96"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 1989,
												"initialValue": {
													"arguments": [
														{
															"expression": {
																"expression": {
																	"baseExpression": {
																		"expression": {
																			"id": 1982,
																			"name": "ds",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 1964,
																			"src": "3517:2:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																				"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																			}
																		},
																		"id": 1983,
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberName": "facetFunctionSelectors",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 1750,
																		"src": "3517:25:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_mapping$_t_address_$_t_struct$_FacetFunctionSelectors_$1740_storage_$",
																			"typeString": "mapping(address => struct LibDiamond.FacetFunctionSelectors storage ref)"
																		}
																	},
																	"id": 1985,
																	"indexExpression": {
																		"id": 1984,
																		"name": "_facetAddress",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 1948,
																		"src": "3543:13:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	},
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": false,
																	"nodeType": "IndexAccess",
																	"src": "3517:40:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_struct$_FacetFunctionSelectors_$1740_storage",
																		"typeString": "struct LibDiamond.FacetFunctionSelectors storage ref"
																	}
																},
																"id": 1986,
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"memberName": "functionSelectors",
																"nodeType": "MemberAccess",
																"referencedDeclaration": 1737,
																"src": "3517:58:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_array$_t_bytes4_$dyn_storage",
																	"typeString": "bytes4[] storage ref"
																}
															},
															"id": 1987,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "length",
															"nodeType": "MemberAccess",
															"src": "3517:65:11",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 1981,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"lValueRequested": false,
														"nodeType": "ElementaryTypeNameExpression",
														"src": "3510:6:11",
														"typeDescriptions": {
															"typeIdentifier": "t_type$_t_uint96_$",
															"typeString": "type(uint96)"
														},
														"typeName": {
															"id": 1980,
															"name": "uint96",
															"nodeType": "ElementaryTypeName",
															"src": "3510:6:11",
															"typeDescriptions": {}
														}
													},
													"id": 1988,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "typeConversion",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3510:73:11",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_uint96",
														"typeString": "uint96"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "3484:99:11"
											},
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint96",
														"typeString": "uint96"
													},
													"id": 1992,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 1990,
														"name": "selectorPosition",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1979,
														"src": "3643:16:11",
														"typeDescriptions": {
															"typeIdentifier": "t_uint96",
															"typeString": "uint96"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "==",
													"rightExpression": {
														"hexValue": "30",
														"id": 1991,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "number",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "3663:1:11",
														"typeDescriptions": {
															"typeIdentifier": "t_rational_0_by_1",
															"typeString": "int_const 0"
														},
														"value": "0"
													},
													"src": "3643:21:11",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 1999,
												"nodeType": "IfStatement",
												"src": "3639:69:11",
												"trueBody": {
													"id": 1998,
													"nodeType": "Block",
													"src": "3666:42:11",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"id": 1994,
																		"name": "ds",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 1964,
																		"src": "3683:2:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																			"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																		}
																	},
																	{
																		"id": 1995,
																		"name": "_facetAddress",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 1948,
																		"src": "3687:13:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																			"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																		},
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	],
																	"id": 1993,
																	"name": "addFacet",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2249,
																	"src": "3674:8:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_DiamondStorage_$1760_storage_ptr_$_t_address_$returns$__$",
																		"typeString": "function (struct LibDiamond.DiamondStorage storage pointer,address)"
																	}
																},
																"id": 1996,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"names": [],
																"nodeType": "FunctionCall",
																"src": "3674:27:11",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 1997,
															"nodeType": "ExpressionStatement",
															"src": "3674:27:11"
														}
													]
												}
											},
											{
												"body": {
													"id": 2044,
													"nodeType": "Block",
													"src": "3801:347:11",
													"statements": [
														{
															"assignments": [
																2011
															],
															"declarations": [
																{
																	"constant": false,
																	"id": 2011,
																	"mutability": "mutable",
																	"name": "selector",
																	"nameLocation": "3816:8:11",
																	"nodeType": "VariableDeclaration",
																	"scope": 2044,
																	"src": "3809:15:11",
																	"stateVariable": false,
																	"storageLocation": "default",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes4",
																		"typeString": "bytes4"
																	},
																	"typeName": {
																		"id": 2010,
																		"name": "bytes4",
																		"nodeType": "ElementaryTypeName",
																		"src": "3809:6:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes4",
																			"typeString": "bytes4"
																		}
																	},
																	"visibility": "internal"
																}
															],
															"id": 2015,
															"initialValue": {
																"baseExpression": {
																	"id": 2012,
																	"name": "_functionSelectors",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 1951,
																	"src": "3827:18:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr",
																		"typeString": "bytes4[] memory"
																	}
																},
																"id": 2014,
																"indexExpression": {
																	"id": 2013,
																	"name": "selectorIndex",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2001,
																	"src": "3846:13:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "IndexAccess",
																"src": "3827:33:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes4",
																	"typeString": "bytes4"
																}
															},
															"nodeType": "VariableDeclarationStatement",
															"src": "3809:51:11"
														},
														{
															"assignments": [
																2017
															],
															"declarations": [
																{
																	"constant": false,
																	"id": 2017,
																	"mutability": "mutable",
																	"name": "oldFacetAddress",
																	"nameLocation": "3876:15:11",
																	"nodeType": "VariableDeclaration",
																	"scope": 2044,
																	"src": "3868:23:11",
																	"stateVariable": false,
																	"storageLocation": "default",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	"typeName": {
																		"id": 2016,
																		"name": "address",
																		"nodeType": "ElementaryTypeName",
																		"src": "3868:7:11",
																		"stateMutability": "nonpayable",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	},
																	"visibility": "internal"
																}
															],
															"id": 2023,
															"initialValue": {
																"expression": {
																	"baseExpression": {
																		"expression": {
																			"id": 2018,
																			"name": "ds",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 1964,
																			"src": "3894:2:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																				"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																			}
																		},
																		"id": 2019,
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberName": "selectorToFacetAndPosition",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 1745,
																		"src": "3894:29:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndPosition_$1734_storage_$",
																			"typeString": "mapping(bytes4 => struct LibDiamond.FacetAddressAndPosition storage ref)"
																		}
																	},
																	"id": 2021,
																	"indexExpression": {
																		"id": 2020,
																		"name": "selector",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2011,
																		"src": "3924:8:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes4",
																			"typeString": "bytes4"
																		}
																	},
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": false,
																	"nodeType": "IndexAccess",
																	"src": "3894:39:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_struct$_FacetAddressAndPosition_$1734_storage",
																		"typeString": "struct LibDiamond.FacetAddressAndPosition storage ref"
																	}
																},
																"id": 2022,
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"memberName": "facetAddress",
																"nodeType": "MemberAccess",
																"referencedDeclaration": 1731,
																"src": "3894:52:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"nodeType": "VariableDeclarationStatement",
															"src": "3868:78:11"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"commonType": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		},
																		"id": 2030,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 2025,
																			"name": "oldFacetAddress",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 2017,
																			"src": "3962:15:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_address",
																				"typeString": "address"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "==",
																		"rightExpression": {
																			"arguments": [
																				{
																					"hexValue": "30",
																					"id": 2028,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "number",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "3989:1:11",
																					"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": 2027,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"lValueRequested": false,
																				"nodeType": "ElementaryTypeNameExpression",
																				"src": "3981:7:11",
																				"typeDescriptions": {
																					"typeIdentifier": "t_type$_t_address_$",
																					"typeString": "type(address)"
																				},
																				"typeName": {
																					"id": 2026,
																					"name": "address",
																					"nodeType": "ElementaryTypeName",
																					"src": "3981:7:11",
																					"typeDescriptions": {}
																				}
																			},
																			"id": 2029,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "typeConversion",
																			"lValueRequested": false,
																			"names": [],
																			"nodeType": "FunctionCall",
																			"src": "3981:10:11",
																			"tryCall": false,
																			"typeDescriptions": {
																				"typeIdentifier": "t_address",
																				"typeString": "address"
																			}
																		},
																		"src": "3962:29:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	{
																		"hexValue": "4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f6e207468617420616c726561647920657869737473",
																		"id": 2031,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "string",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "3993:55:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_stringliteral_99a7418ee014d613f46da44561258cdbb58064508097483a319062b99fa37700",
																			"typeString": "literal_string \"LibDiamondCut: Can't add function that already exists\""
																		},
																		"value": "LibDiamondCut: Can't add function that already exists"
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		},
																		{
																			"typeIdentifier": "t_stringliteral_99a7418ee014d613f46da44561258cdbb58064508097483a319062b99fa37700",
																			"typeString": "literal_string \"LibDiamondCut: Can't add function that already exists\""
																		}
																	],
																	"id": 2024,
																	"name": "require",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [
																		4294967278,
																		4294967278
																	],
																	"referencedDeclaration": 4294967278,
																	"src": "3954:7:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
																		"typeString": "function (bool,string memory) pure"
																	}
																},
																"id": 2032,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"names": [],
																"nodeType": "FunctionCall",
																"src": "3954:95:11",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 2033,
															"nodeType": "ExpressionStatement",
															"src": "3954:95:11"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"id": 2035,
																		"name": "ds",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 1964,
																		"src": "4069:2:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																			"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																		}
																	},
																	{
																		"id": 2036,
																		"name": "selector",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2011,
																		"src": "4073:8:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes4",
																			"typeString": "bytes4"
																		}
																	},
																	{
																		"id": 2037,
																		"name": "selectorPosition",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 1979,
																		"src": "4083:16:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint96",
																			"typeString": "uint96"
																		}
																	},
																	{
																		"id": 2038,
																		"name": "_facetAddress",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 1948,
																		"src": "4101:13:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																			"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																		},
																		{
																			"typeIdentifier": "t_bytes4",
																			"typeString": "bytes4"
																		},
																		{
																			"typeIdentifier": "t_uint96",
																			"typeString": "uint96"
																		},
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	],
																	"id": 2034,
																	"name": "addFunction",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2290,
																	"src": "4057:11:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_DiamondStorage_$1760_storage_ptr_$_t_bytes4_$_t_uint96_$_t_address_$returns$__$",
																		"typeString": "function (struct LibDiamond.DiamondStorage storage pointer,bytes4,uint96,address)"
																	}
																},
																"id": 2039,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"names": [],
																"nodeType": "FunctionCall",
																"src": "4057:58:11",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 2040,
															"nodeType": "ExpressionStatement",
															"src": "4057:58:11"
														},
														{
															"expression": {
																"id": 2042,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "UnaryOperation",
																"operator": "++",
																"prefix": false,
																"src": "4123:18:11",
																"subExpression": {
																	"id": 2041,
																	"name": "selectorPosition",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 1979,
																	"src": "4123:16:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint96",
																		"typeString": "uint96"
																	}
																},
																"typeDescriptions": {
																	"typeIdentifier": "t_uint96",
																	"typeString": "uint96"
																}
															},
															"id": 2043,
															"nodeType": "ExpressionStatement",
															"src": "4123:18:11"
														}
													]
												},
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 2006,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 2003,
														"name": "selectorIndex",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2001,
														"src": "3741:13:11",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "<",
													"rightExpression": {
														"expression": {
															"id": 2004,
															"name": "_functionSelectors",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 1951,
															"src": "3757:18:11",
															"typeDescriptions": {
																"typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr",
																"typeString": "bytes4[] memory"
															}
														},
														"id": 2005,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "length",
														"nodeType": "MemberAccess",
														"src": "3757:25:11",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "3741:41:11",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 2045,
												"initializationExpression": {
													"assignments": [
														2001
													],
													"declarations": [
														{
															"constant": false,
															"id": 2001,
															"mutability": "mutable",
															"name": "selectorIndex",
															"nameLocation": "3726:13:11",
															"nodeType": "VariableDeclaration",
															"scope": 2045,
															"src": "3718:21:11",
															"stateVariable": false,
															"storageLocation": "default",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"typeName": {
																"id": 2000,
																"name": "uint256",
																"nodeType": "ElementaryTypeName",
																"src": "3718:7:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"visibility": "internal"
														}
													],
													"id": 2002,
													"nodeType": "VariableDeclarationStatement",
													"src": "3718:21:11"
												},
												"loopExpression": {
													"expression": {
														"id": 2008,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"nodeType": "UnaryOperation",
														"operator": "++",
														"prefix": false,
														"src": "3784:15:11",
														"subExpression": {
															"id": 2007,
															"name": "selectorIndex",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2001,
															"src": "3784:13:11",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"id": 2009,
													"nodeType": "ExpressionStatement",
													"src": "3784:15:11"
												},
												"nodeType": "ForStatement",
												"src": "3713:435:11"
											}
										]
									},
									"id": 2047,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "addFunctions",
									"nameLocation": "3166:12:11",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 1952,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 1948,
												"mutability": "mutable",
												"name": "_facetAddress",
												"nameLocation": "3187:13:11",
												"nodeType": "VariableDeclaration",
												"scope": 2047,
												"src": "3179:21:11",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 1947,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "3179:7:11",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 1951,
												"mutability": "mutable",
												"name": "_functionSelectors",
												"nameLocation": "3218:18:11",
												"nodeType": "VariableDeclaration",
												"scope": 2047,
												"src": "3202:34:11",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr",
													"typeString": "bytes4[]"
												},
												"typeName": {
													"baseType": {
														"id": 1949,
														"name": "bytes4",
														"nodeType": "ElementaryTypeName",
														"src": "3202:6:11",
														"typeDescriptions": {
															"typeIdentifier": "t_bytes4",
															"typeString": "bytes4"
														}
													},
													"id": 1950,
													"nodeType": "ArrayTypeName",
													"src": "3202:8:11",
													"typeDescriptions": {
														"typeIdentifier": "t_array$_t_bytes4_$dyn_storage_ptr",
														"typeString": "bytes4[]"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3178:59:11"
									},
									"returnParameters": {
										"id": 1953,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "3247:0:11"
									},
									"scope": 2554,
									"src": "3157:995:11",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2150,
										"nodeType": "Block",
										"src": "4250:964:11",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 2059,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"expression": {
																	"id": 2056,
																	"name": "_functionSelectors",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2052,
																	"src": "4264:18:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr",
																		"typeString": "bytes4[] memory"
																	}
																},
																"id": 2057,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"memberName": "length",
																"nodeType": "MemberAccess",
																"src": "4264:25:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"hexValue": "30",
																"id": 2058,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "4292:1:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "4264:29:11",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e20666163657420746f20637574",
															"id": 2060,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "4295:45:11",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_1ffc682bcfedefd5e93ba9ed0c2d1bc0b18319886e3b4bd28a03a3d3729f85c0",
																"typeString": "literal_string \"LibDiamondCut: No selectors in facet to cut\""
															},
															"value": "LibDiamondCut: No selectors in facet to cut"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															{
																"typeIdentifier": "t_stringliteral_1ffc682bcfedefd5e93ba9ed0c2d1bc0b18319886e3b4bd28a03a3d3729f85c0",
																"typeString": "literal_string \"LibDiamondCut: No selectors in facet to cut\""
															}
														],
														"id": 2055,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "4256:7:11",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 2061,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4256:85:11",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2062,
												"nodeType": "ExpressionStatement",
												"src": "4256:85:11"
											},
											{
												"assignments": [
													2065
												],
												"declarations": [
													{
														"constant": false,
														"id": 2065,
														"mutability": "mutable",
														"name": "ds",
														"nameLocation": "4370:2:11",
														"nodeType": "VariableDeclaration",
														"scope": 2150,
														"src": "4347:25:11",
														"stateVariable": false,
														"storageLocation": "storage",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
															"typeString": "struct LibDiamond.DiamondStorage"
														},
														"typeName": {
															"id": 2064,
															"nodeType": "UserDefinedTypeName",
															"pathNode": {
																"id": 2063,
																"name": "DiamondStorage",
																"nodeType": "IdentifierPath",
																"referencedDeclaration": 1760,
																"src": "4347:14:11"
															},
															"referencedDeclaration": 1760,
															"src": "4347:14:11",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																"typeString": "struct LibDiamond.DiamondStorage"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 2068,
												"initialValue": {
													"arguments": [],
													"expression": {
														"argumentTypes": [],
														"id": 2066,
														"name": "diamondStorage",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1772,
														"src": "4375:14:11",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$1760_storage_ptr_$",
															"typeString": "function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"
														}
													},
													"id": 2067,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4375:16:11",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
														"typeString": "struct LibDiamond.DiamondStorage storage pointer"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "4347:44:11"
											},
											{
												"expression": {
													"arguments": [
														{
															"commonType": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															"id": 2075,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 2070,
																"name": "_facetAddress",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2049,
																"src": "4405:13:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "!=",
															"rightExpression": {
																"arguments": [
																	{
																		"hexValue": "30",
																		"id": 2073,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "4430:1:11",
																		"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": 2072,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "4422:7:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_address_$",
																		"typeString": "type(address)"
																	},
																	"typeName": {
																		"id": 2071,
																		"name": "address",
																		"nodeType": "ElementaryTypeName",
																		"src": "4422:7:11",
																		"typeDescriptions": {}
																	}
																},
																"id": 2074,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "typeConversion",
																"lValueRequested": false,
																"names": [],
																"nodeType": "FunctionCall",
																"src": "4422:10:11",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"src": "4405:27:11",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "4c69624469616d6f6e644375743a204164642066616365742063616e27742062652061646472657373283029",
															"id": 2076,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "4434:46:11",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_64609d8b93c93a06b98d7db7a87b04044cd4a52c5661d603bb9b90ad8b914a3a",
																"typeString": "literal_string \"LibDiamondCut: Add facet can't be address(0)\""
															},
															"value": "LibDiamondCut: Add facet can't be address(0)"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															{
																"typeIdentifier": "t_stringliteral_64609d8b93c93a06b98d7db7a87b04044cd4a52c5661d603bb9b90ad8b914a3a",
																"typeString": "literal_string \"LibDiamondCut: Add facet can't be address(0)\""
															}
														],
														"id": 2069,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "4397:7:11",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 2077,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4397:84:11",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2078,
												"nodeType": "ExpressionStatement",
												"src": "4397:84:11"
											},
											{
												"assignments": [
													2080
												],
												"declarations": [
													{
														"constant": false,
														"id": 2080,
														"mutability": "mutable",
														"name": "selectorPosition",
														"nameLocation": "4494:16:11",
														"nodeType": "VariableDeclaration",
														"scope": 2150,
														"src": "4487:23:11",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint96",
															"typeString": "uint96"
														},
														"typeName": {
															"id": 2079,
															"name": "uint96",
															"nodeType": "ElementaryTypeName",
															"src": "4487:6:11",
															"typeDescriptions": {
																"typeIdentifier": "t_uint96",
																"typeString": "uint96"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 2090,
												"initialValue": {
													"arguments": [
														{
															"expression": {
																"expression": {
																	"baseExpression": {
																		"expression": {
																			"id": 2083,
																			"name": "ds",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 2065,
																			"src": "4520:2:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																				"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																			}
																		},
																		"id": 2084,
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberName": "facetFunctionSelectors",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 1750,
																		"src": "4520:25:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_mapping$_t_address_$_t_struct$_FacetFunctionSelectors_$1740_storage_$",
																			"typeString": "mapping(address => struct LibDiamond.FacetFunctionSelectors storage ref)"
																		}
																	},
																	"id": 2086,
																	"indexExpression": {
																		"id": 2085,
																		"name": "_facetAddress",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2049,
																		"src": "4546:13:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	},
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": false,
																	"nodeType": "IndexAccess",
																	"src": "4520:40:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_struct$_FacetFunctionSelectors_$1740_storage",
																		"typeString": "struct LibDiamond.FacetFunctionSelectors storage ref"
																	}
																},
																"id": 2087,
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"memberName": "functionSelectors",
																"nodeType": "MemberAccess",
																"referencedDeclaration": 1737,
																"src": "4520:58:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_array$_t_bytes4_$dyn_storage",
																	"typeString": "bytes4[] storage ref"
																}
															},
															"id": 2088,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "length",
															"nodeType": "MemberAccess",
															"src": "4520:65:11",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														],
														"id": 2082,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"lValueRequested": false,
														"nodeType": "ElementaryTypeNameExpression",
														"src": "4513:6:11",
														"typeDescriptions": {
															"typeIdentifier": "t_type$_t_uint96_$",
															"typeString": "type(uint96)"
														},
														"typeName": {
															"id": 2081,
															"name": "uint96",
															"nodeType": "ElementaryTypeName",
															"src": "4513:6:11",
															"typeDescriptions": {}
														}
													},
													"id": 2089,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "typeConversion",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4513:73:11",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_uint96",
														"typeString": "uint96"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "4487:99:11"
											},
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint96",
														"typeString": "uint96"
													},
													"id": 2093,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 2091,
														"name": "selectorPosition",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2080,
														"src": "4646:16:11",
														"typeDescriptions": {
															"typeIdentifier": "t_uint96",
															"typeString": "uint96"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "==",
													"rightExpression": {
														"hexValue": "30",
														"id": 2092,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "number",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "4666:1:11",
														"typeDescriptions": {
															"typeIdentifier": "t_rational_0_by_1",
															"typeString": "int_const 0"
														},
														"value": "0"
													},
													"src": "4646:21:11",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 2100,
												"nodeType": "IfStatement",
												"src": "4642:69:11",
												"trueBody": {
													"id": 2099,
													"nodeType": "Block",
													"src": "4669:42:11",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"id": 2095,
																		"name": "ds",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2065,
																		"src": "4686:2:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																			"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																		}
																	},
																	{
																		"id": 2096,
																		"name": "_facetAddress",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2049,
																		"src": "4690:13:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																			"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																		},
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	],
																	"id": 2094,
																	"name": "addFacet",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2249,
																	"src": "4677:8:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_DiamondStorage_$1760_storage_ptr_$_t_address_$returns$__$",
																		"typeString": "function (struct LibDiamond.DiamondStorage storage pointer,address)"
																	}
																},
																"id": 2097,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"names": [],
																"nodeType": "FunctionCall",
																"src": "4677:27:11",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 2098,
															"nodeType": "ExpressionStatement",
															"src": "4677:27:11"
														}
													]
												}
											},
											{
												"body": {
													"id": 2148,
													"nodeType": "Block",
													"src": "4804:406:11",
													"statements": [
														{
															"assignments": [
																2112
															],
															"declarations": [
																{
																	"constant": false,
																	"id": 2112,
																	"mutability": "mutable",
																	"name": "selector",
																	"nameLocation": "4819:8:11",
																	"nodeType": "VariableDeclaration",
																	"scope": 2148,
																	"src": "4812:15:11",
																	"stateVariable": false,
																	"storageLocation": "default",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes4",
																		"typeString": "bytes4"
																	},
																	"typeName": {
																		"id": 2111,
																		"name": "bytes4",
																		"nodeType": "ElementaryTypeName",
																		"src": "4812:6:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes4",
																			"typeString": "bytes4"
																		}
																	},
																	"visibility": "internal"
																}
															],
															"id": 2116,
															"initialValue": {
																"baseExpression": {
																	"id": 2113,
																	"name": "_functionSelectors",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2052,
																	"src": "4830:18:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr",
																		"typeString": "bytes4[] memory"
																	}
																},
																"id": 2115,
																"indexExpression": {
																	"id": 2114,
																	"name": "selectorIndex",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2102,
																	"src": "4849:13:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "IndexAccess",
																"src": "4830:33:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes4",
																	"typeString": "bytes4"
																}
															},
															"nodeType": "VariableDeclarationStatement",
															"src": "4812:51:11"
														},
														{
															"assignments": [
																2118
															],
															"declarations": [
																{
																	"constant": false,
																	"id": 2118,
																	"mutability": "mutable",
																	"name": "oldFacetAddress",
																	"nameLocation": "4879:15:11",
																	"nodeType": "VariableDeclaration",
																	"scope": 2148,
																	"src": "4871:23:11",
																	"stateVariable": false,
																	"storageLocation": "default",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	"typeName": {
																		"id": 2117,
																		"name": "address",
																		"nodeType": "ElementaryTypeName",
																		"src": "4871:7:11",
																		"stateMutability": "nonpayable",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	},
																	"visibility": "internal"
																}
															],
															"id": 2124,
															"initialValue": {
																"expression": {
																	"baseExpression": {
																		"expression": {
																			"id": 2119,
																			"name": "ds",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 2065,
																			"src": "4897:2:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																				"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																			}
																		},
																		"id": 2120,
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberName": "selectorToFacetAndPosition",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 1745,
																		"src": "4897:29:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndPosition_$1734_storage_$",
																			"typeString": "mapping(bytes4 => struct LibDiamond.FacetAddressAndPosition storage ref)"
																		}
																	},
																	"id": 2122,
																	"indexExpression": {
																		"id": 2121,
																		"name": "selector",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2112,
																		"src": "4927:8:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes4",
																			"typeString": "bytes4"
																		}
																	},
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": false,
																	"nodeType": "IndexAccess",
																	"src": "4897:39:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_struct$_FacetAddressAndPosition_$1734_storage",
																		"typeString": "struct LibDiamond.FacetAddressAndPosition storage ref"
																	}
																},
																"id": 2123,
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"memberName": "facetAddress",
																"nodeType": "MemberAccess",
																"referencedDeclaration": 1731,
																"src": "4897:52:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"nodeType": "VariableDeclarationStatement",
															"src": "4871:78:11"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"commonType": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		},
																		"id": 2128,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"id": 2126,
																			"name": "oldFacetAddress",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 2118,
																			"src": "4965:15:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_address",
																				"typeString": "address"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "!=",
																		"rightExpression": {
																			"id": 2127,
																			"name": "_facetAddress",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 2049,
																			"src": "4984:13:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_address",
																				"typeString": "address"
																			}
																		},
																		"src": "4965:32:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	{
																		"hexValue": "4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756e6374696f6e20776974682073616d652066756e6374696f6e",
																		"id": 2129,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "string",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "4999:58:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_stringliteral_b5a7112edf707196456f338fdcc19cd849be6cb8c0d166bcd035f4cfb00e7078",
																			"typeString": "literal_string \"LibDiamondCut: Can't replace function with same function\""
																		},
																		"value": "LibDiamondCut: Can't replace function with same function"
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		},
																		{
																			"typeIdentifier": "t_stringliteral_b5a7112edf707196456f338fdcc19cd849be6cb8c0d166bcd035f4cfb00e7078",
																			"typeString": "literal_string \"LibDiamondCut: Can't replace function with same function\""
																		}
																	],
																	"id": 2125,
																	"name": "require",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [
																		4294967278,
																		4294967278
																	],
																	"referencedDeclaration": 4294967278,
																	"src": "4957:7:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
																		"typeString": "function (bool,string memory) pure"
																	}
																},
																"id": 2130,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"names": [],
																"nodeType": "FunctionCall",
																"src": "4957:101:11",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 2131,
															"nodeType": "ExpressionStatement",
															"src": "4957:101:11"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"id": 2133,
																		"name": "ds",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2065,
																		"src": "5081:2:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																			"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																		}
																	},
																	{
																		"id": 2134,
																		"name": "oldFacetAddress",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2118,
																		"src": "5085:15:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	},
																	{
																		"id": 2135,
																		"name": "selector",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2112,
																		"src": "5102:8:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes4",
																			"typeString": "bytes4"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																			"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																		},
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		},
																		{
																			"typeIdentifier": "t_bytes4",
																			"typeString": "bytes4"
																		}
																	],
																	"id": 2132,
																	"name": "removeFunction",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2457,
																	"src": "5066:14:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_DiamondStorage_$1760_storage_ptr_$_t_address_$_t_bytes4_$returns$__$",
																		"typeString": "function (struct LibDiamond.DiamondStorage storage pointer,address,bytes4)"
																	}
																},
																"id": 2136,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"names": [],
																"nodeType": "FunctionCall",
																"src": "5066:45:11",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 2137,
															"nodeType": "ExpressionStatement",
															"src": "5066:45:11"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"id": 2139,
																		"name": "ds",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2065,
																		"src": "5131:2:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																			"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																		}
																	},
																	{
																		"id": 2140,
																		"name": "selector",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2112,
																		"src": "5135:8:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes4",
																			"typeString": "bytes4"
																		}
																	},
																	{
																		"id": 2141,
																		"name": "selectorPosition",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2080,
																		"src": "5145:16:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint96",
																			"typeString": "uint96"
																		}
																	},
																	{
																		"id": 2142,
																		"name": "_facetAddress",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2049,
																		"src": "5163:13:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																			"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																		},
																		{
																			"typeIdentifier": "t_bytes4",
																			"typeString": "bytes4"
																		},
																		{
																			"typeIdentifier": "t_uint96",
																			"typeString": "uint96"
																		},
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	],
																	"id": 2138,
																	"name": "addFunction",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2290,
																	"src": "5119:11:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_DiamondStorage_$1760_storage_ptr_$_t_bytes4_$_t_uint96_$_t_address_$returns$__$",
																		"typeString": "function (struct LibDiamond.DiamondStorage storage pointer,bytes4,uint96,address)"
																	}
																},
																"id": 2143,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"names": [],
																"nodeType": "FunctionCall",
																"src": "5119:58:11",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 2144,
															"nodeType": "ExpressionStatement",
															"src": "5119:58:11"
														},
														{
															"expression": {
																"id": 2146,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "UnaryOperation",
																"operator": "++",
																"prefix": false,
																"src": "5185:18:11",
																"subExpression": {
																	"id": 2145,
																	"name": "selectorPosition",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2080,
																	"src": "5185:16:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint96",
																		"typeString": "uint96"
																	}
																},
																"typeDescriptions": {
																	"typeIdentifier": "t_uint96",
																	"typeString": "uint96"
																}
															},
															"id": 2147,
															"nodeType": "ExpressionStatement",
															"src": "5185:18:11"
														}
													]
												},
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 2107,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 2104,
														"name": "selectorIndex",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2102,
														"src": "4744:13:11",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "<",
													"rightExpression": {
														"expression": {
															"id": 2105,
															"name": "_functionSelectors",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2052,
															"src": "4760:18:11",
															"typeDescriptions": {
																"typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr",
																"typeString": "bytes4[] memory"
															}
														},
														"id": 2106,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "length",
														"nodeType": "MemberAccess",
														"src": "4760:25:11",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "4744:41:11",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 2149,
												"initializationExpression": {
													"assignments": [
														2102
													],
													"declarations": [
														{
															"constant": false,
															"id": 2102,
															"mutability": "mutable",
															"name": "selectorIndex",
															"nameLocation": "4729:13:11",
															"nodeType": "VariableDeclaration",
															"scope": 2149,
															"src": "4721:21:11",
															"stateVariable": false,
															"storageLocation": "default",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"typeName": {
																"id": 2101,
																"name": "uint256",
																"nodeType": "ElementaryTypeName",
																"src": "4721:7:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"visibility": "internal"
														}
													],
													"id": 2103,
													"nodeType": "VariableDeclarationStatement",
													"src": "4721:21:11"
												},
												"loopExpression": {
													"expression": {
														"id": 2109,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"nodeType": "UnaryOperation",
														"operator": "++",
														"prefix": false,
														"src": "4787:15:11",
														"subExpression": {
															"id": 2108,
															"name": "selectorIndex",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2102,
															"src": "4787:13:11",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"id": 2110,
													"nodeType": "ExpressionStatement",
													"src": "4787:15:11"
												},
												"nodeType": "ForStatement",
												"src": "4716:494:11"
											}
										]
									},
									"id": 2151,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "replaceFunctions",
									"nameLocation": "4165:16:11",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2053,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2049,
												"mutability": "mutable",
												"name": "_facetAddress",
												"nameLocation": "4190:13:11",
												"nodeType": "VariableDeclaration",
												"scope": 2151,
												"src": "4182:21:11",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2048,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "4182:7:11",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2052,
												"mutability": "mutable",
												"name": "_functionSelectors",
												"nameLocation": "4221:18:11",
												"nodeType": "VariableDeclaration",
												"scope": 2151,
												"src": "4205:34:11",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr",
													"typeString": "bytes4[]"
												},
												"typeName": {
													"baseType": {
														"id": 2050,
														"name": "bytes4",
														"nodeType": "ElementaryTypeName",
														"src": "4205:6:11",
														"typeDescriptions": {
															"typeIdentifier": "t_bytes4",
															"typeString": "bytes4"
														}
													},
													"id": 2051,
													"nodeType": "ArrayTypeName",
													"src": "4205:8:11",
													"typeDescriptions": {
														"typeIdentifier": "t_array$_t_bytes4_$dyn_storage_ptr",
														"typeString": "bytes4[]"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4181:59:11"
									},
									"returnParameters": {
										"id": 2054,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "4250:0:11"
									},
									"scope": 2554,
									"src": "4156:1058:11",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2215,
										"nodeType": "Block",
										"src": "5311:605:11",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 2163,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"expression": {
																	"id": 2160,
																	"name": "_functionSelectors",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2156,
																	"src": "5325:18:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr",
																		"typeString": "bytes4[] memory"
																	}
																},
																"id": 2161,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"memberName": "length",
																"nodeType": "MemberAccess",
																"src": "5325:25:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"hexValue": "30",
																"id": 2162,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "5353:1:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "5325:29:11",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e20666163657420746f20637574",
															"id": 2164,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "5356:45:11",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_1ffc682bcfedefd5e93ba9ed0c2d1bc0b18319886e3b4bd28a03a3d3729f85c0",
																"typeString": "literal_string \"LibDiamondCut: No selectors in facet to cut\""
															},
															"value": "LibDiamondCut: No selectors in facet to cut"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															{
																"typeIdentifier": "t_stringliteral_1ffc682bcfedefd5e93ba9ed0c2d1bc0b18319886e3b4bd28a03a3d3729f85c0",
																"typeString": "literal_string \"LibDiamondCut: No selectors in facet to cut\""
															}
														],
														"id": 2159,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "5317:7:11",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 2165,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5317:85:11",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2166,
												"nodeType": "ExpressionStatement",
												"src": "5317:85:11"
											},
											{
												"assignments": [
													2169
												],
												"declarations": [
													{
														"constant": false,
														"id": 2169,
														"mutability": "mutable",
														"name": "ds",
														"nameLocation": "5431:2:11",
														"nodeType": "VariableDeclaration",
														"scope": 2215,
														"src": "5408:25:11",
														"stateVariable": false,
														"storageLocation": "storage",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
															"typeString": "struct LibDiamond.DiamondStorage"
														},
														"typeName": {
															"id": 2168,
															"nodeType": "UserDefinedTypeName",
															"pathNode": {
																"id": 2167,
																"name": "DiamondStorage",
																"nodeType": "IdentifierPath",
																"referencedDeclaration": 1760,
																"src": "5408:14:11"
															},
															"referencedDeclaration": 1760,
															"src": "5408:14:11",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																"typeString": "struct LibDiamond.DiamondStorage"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 2172,
												"initialValue": {
													"arguments": [],
													"expression": {
														"argumentTypes": [],
														"id": 2170,
														"name": "diamondStorage",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 1772,
														"src": "5436:14:11",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_DiamondStorage_$1760_storage_ptr_$",
															"typeString": "function () pure returns (struct LibDiamond.DiamondStorage storage pointer)"
														}
													},
													"id": 2171,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5436:16:11",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
														"typeString": "struct LibDiamond.DiamondStorage storage pointer"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "5408:44:11"
											},
											{
												"expression": {
													"arguments": [
														{
															"commonType": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															"id": 2179,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 2174,
																"name": "_facetAddress",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2153,
																"src": "5527:13:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "==",
															"rightExpression": {
																"arguments": [
																	{
																		"hexValue": "30",
																		"id": 2177,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "5552:1:11",
																		"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": 2176,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "5544:7:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_address_$",
																		"typeString": "type(address)"
																	},
																	"typeName": {
																		"id": 2175,
																		"name": "address",
																		"nodeType": "ElementaryTypeName",
																		"src": "5544:7:11",
																		"typeDescriptions": {}
																	}
																},
																"id": 2178,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "typeConversion",
																"lValueRequested": false,
																"names": [],
																"nodeType": "FunctionCall",
																"src": "5544:10:11",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"src": "5527:27:11",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "4c69624469616d6f6e644375743a2052656d6f76652066616365742061646472657373206d7573742062652061646472657373283029",
															"id": 2180,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "5556:56:11",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_b739aae768f79b96e91d9f66398733516895e39eb09ee54a795b49dcc77504d4",
																"typeString": "literal_string \"LibDiamondCut: Remove facet address must be address(0)\""
															},
															"value": "LibDiamondCut: Remove facet address must be address(0)"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															{
																"typeIdentifier": "t_stringliteral_b739aae768f79b96e91d9f66398733516895e39eb09ee54a795b49dcc77504d4",
																"typeString": "literal_string \"LibDiamondCut: Remove facet address must be address(0)\""
															}
														],
														"id": 2173,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "5519:7:11",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 2181,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5519:94:11",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2182,
												"nodeType": "ExpressionStatement",
												"src": "5519:94:11"
											},
											{
												"body": {
													"id": 2213,
													"nodeType": "Block",
													"src": "5707:205:11",
													"statements": [
														{
															"assignments": [
																2194
															],
															"declarations": [
																{
																	"constant": false,
																	"id": 2194,
																	"mutability": "mutable",
																	"name": "selector",
																	"nameLocation": "5722:8:11",
																	"nodeType": "VariableDeclaration",
																	"scope": 2213,
																	"src": "5715:15:11",
																	"stateVariable": false,
																	"storageLocation": "default",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes4",
																		"typeString": "bytes4"
																	},
																	"typeName": {
																		"id": 2193,
																		"name": "bytes4",
																		"nodeType": "ElementaryTypeName",
																		"src": "5715:6:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes4",
																			"typeString": "bytes4"
																		}
																	},
																	"visibility": "internal"
																}
															],
															"id": 2198,
															"initialValue": {
																"baseExpression": {
																	"id": 2195,
																	"name": "_functionSelectors",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2156,
																	"src": "5733:18:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr",
																		"typeString": "bytes4[] memory"
																	}
																},
																"id": 2197,
																"indexExpression": {
																	"id": 2196,
																	"name": "selectorIndex",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2184,
																	"src": "5752:13:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "IndexAccess",
																"src": "5733:33:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes4",
																	"typeString": "bytes4"
																}
															},
															"nodeType": "VariableDeclarationStatement",
															"src": "5715:51:11"
														},
														{
															"assignments": [
																2200
															],
															"declarations": [
																{
																	"constant": false,
																	"id": 2200,
																	"mutability": "mutable",
																	"name": "oldFacetAddress",
																	"nameLocation": "5782:15:11",
																	"nodeType": "VariableDeclaration",
																	"scope": 2213,
																	"src": "5774:23:11",
																	"stateVariable": false,
																	"storageLocation": "default",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	"typeName": {
																		"id": 2199,
																		"name": "address",
																		"nodeType": "ElementaryTypeName",
																		"src": "5774:7:11",
																		"stateMutability": "nonpayable",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	},
																	"visibility": "internal"
																}
															],
															"id": 2206,
															"initialValue": {
																"expression": {
																	"baseExpression": {
																		"expression": {
																			"id": 2201,
																			"name": "ds",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 2169,
																			"src": "5800:2:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																				"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																			}
																		},
																		"id": 2202,
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberName": "selectorToFacetAndPosition",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 1745,
																		"src": "5800:29:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndPosition_$1734_storage_$",
																			"typeString": "mapping(bytes4 => struct LibDiamond.FacetAddressAndPosition storage ref)"
																		}
																	},
																	"id": 2204,
																	"indexExpression": {
																		"id": 2203,
																		"name": "selector",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2194,
																		"src": "5830:8:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes4",
																			"typeString": "bytes4"
																		}
																	},
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": false,
																	"nodeType": "IndexAccess",
																	"src": "5800:39:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_struct$_FacetAddressAndPosition_$1734_storage",
																		"typeString": "struct LibDiamond.FacetAddressAndPosition storage ref"
																	}
																},
																"id": 2205,
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"memberName": "facetAddress",
																"nodeType": "MemberAccess",
																"referencedDeclaration": 1731,
																"src": "5800:52:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"nodeType": "VariableDeclarationStatement",
															"src": "5774:78:11"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"id": 2208,
																		"name": "ds",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2169,
																		"src": "5875:2:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																			"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																		}
																	},
																	{
																		"id": 2209,
																		"name": "oldFacetAddress",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2200,
																		"src": "5879:15:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	},
																	{
																		"id": 2210,
																		"name": "selector",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2194,
																		"src": "5896:8:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes4",
																			"typeString": "bytes4"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																			"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																		},
																		{
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		},
																		{
																			"typeIdentifier": "t_bytes4",
																			"typeString": "bytes4"
																		}
																	],
																	"id": 2207,
																	"name": "removeFunction",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2457,
																	"src": "5860:14:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_DiamondStorage_$1760_storage_ptr_$_t_address_$_t_bytes4_$returns$__$",
																		"typeString": "function (struct LibDiamond.DiamondStorage storage pointer,address,bytes4)"
																	}
																},
																"id": 2211,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"names": [],
																"nodeType": "FunctionCall",
																"src": "5860:45:11",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 2212,
															"nodeType": "ExpressionStatement",
															"src": "5860:45:11"
														}
													]
												},
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 2189,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 2186,
														"name": "selectorIndex",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2184,
														"src": "5647:13:11",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "<",
													"rightExpression": {
														"expression": {
															"id": 2187,
															"name": "_functionSelectors",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2156,
															"src": "5663:18:11",
															"typeDescriptions": {
																"typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr",
																"typeString": "bytes4[] memory"
															}
														},
														"id": 2188,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "length",
														"nodeType": "MemberAccess",
														"src": "5663:25:11",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "5647:41:11",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 2214,
												"initializationExpression": {
													"assignments": [
														2184
													],
													"declarations": [
														{
															"constant": false,
															"id": 2184,
															"mutability": "mutable",
															"name": "selectorIndex",
															"nameLocation": "5632:13:11",
															"nodeType": "VariableDeclaration",
															"scope": 2214,
															"src": "5624:21:11",
															"stateVariable": false,
															"storageLocation": "default",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"typeName": {
																"id": 2183,
																"name": "uint256",
																"nodeType": "ElementaryTypeName",
																"src": "5624:7:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"visibility": "internal"
														}
													],
													"id": 2185,
													"nodeType": "VariableDeclarationStatement",
													"src": "5624:21:11"
												},
												"loopExpression": {
													"expression": {
														"id": 2191,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"nodeType": "UnaryOperation",
														"operator": "++",
														"prefix": false,
														"src": "5690:15:11",
														"subExpression": {
															"id": 2190,
															"name": "selectorIndex",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2184,
															"src": "5690:13:11",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"id": 2192,
													"nodeType": "ExpressionStatement",
													"src": "5690:15:11"
												},
												"nodeType": "ForStatement",
												"src": "5619:293:11"
											}
										]
									},
									"id": 2216,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "removeFunctions",
									"nameLocation": "5227:15:11",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2157,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2153,
												"mutability": "mutable",
												"name": "_facetAddress",
												"nameLocation": "5251:13:11",
												"nodeType": "VariableDeclaration",
												"scope": 2216,
												"src": "5243:21:11",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2152,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "5243:7:11",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2156,
												"mutability": "mutable",
												"name": "_functionSelectors",
												"nameLocation": "5282:18:11",
												"nodeType": "VariableDeclaration",
												"scope": 2216,
												"src": "5266:34:11",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr",
													"typeString": "bytes4[]"
												},
												"typeName": {
													"baseType": {
														"id": 2154,
														"name": "bytes4",
														"nodeType": "ElementaryTypeName",
														"src": "5266:6:11",
														"typeDescriptions": {
															"typeIdentifier": "t_bytes4",
															"typeString": "bytes4"
														}
													},
													"id": 2155,
													"nodeType": "ArrayTypeName",
													"src": "5266:8:11",
													"typeDescriptions": {
														"typeIdentifier": "t_array$_t_bytes4_$dyn_storage_ptr",
														"typeString": "bytes4[]"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5242:59:11"
									},
									"returnParameters": {
										"id": 2158,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "5311:0:11"
									},
									"scope": 2554,
									"src": "5218:698:11",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2248,
										"nodeType": "Block",
										"src": "5997:225:11",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"id": 2225,
															"name": "_facetAddress",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2221,
															"src": "6026:13:11",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														{
															"hexValue": "4c69624469616d6f6e644375743a204e657720666163657420686173206e6f20636f6465",
															"id": 2226,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "6041:38:11",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_846ccbeb9c32d4d40d2c1bf991251db6ab65744a2f52b273947cee088a65504b",
																"typeString": "literal_string \"LibDiamondCut: New facet has no code\""
															},
															"value": "LibDiamondCut: New facet has no code"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															{
																"typeIdentifier": "t_stringliteral_846ccbeb9c32d4d40d2c1bf991251db6ab65744a2f52b273947cee088a65504b",
																"typeString": "literal_string \"LibDiamondCut: New facet has no code\""
															}
														],
														"id": 2224,
														"name": "enforceHasContractCode",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2553,
														"src": "6003:22:11",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_address_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (address,string memory) view"
														}
													},
													"id": 2227,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "6003:77:11",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2228,
												"nodeType": "ExpressionStatement",
												"src": "6003:77:11"
											},
											{
												"expression": {
													"id": 2238,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"expression": {
															"baseExpression": {
																"expression": {
																	"id": 2229,
																	"name": "ds",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2219,
																	"src": "6086:2:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																		"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																	}
																},
																"id": 2232,
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"memberName": "facetFunctionSelectors",
																"nodeType": "MemberAccess",
																"referencedDeclaration": 1750,
																"src": "6086:25:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_mapping$_t_address_$_t_struct$_FacetFunctionSelectors_$1740_storage_$",
																	"typeString": "mapping(address => struct LibDiamond.FacetFunctionSelectors storage ref)"
																}
															},
															"id": 2233,
															"indexExpression": {
																"id": 2231,
																"name": "_facetAddress",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2221,
																"src": "6112:13:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"nodeType": "IndexAccess",
															"src": "6086:40:11",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_FacetFunctionSelectors_$1740_storage",
																"typeString": "struct LibDiamond.FacetFunctionSelectors storage ref"
															}
														},
														"id": 2234,
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"memberName": "facetAddressPosition",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 1739,
														"src": "6086:61:11",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"expression": {
															"expression": {
																"id": 2235,
																"name": "ds",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2219,
																"src": "6150:2:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																	"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																}
															},
															"id": 2236,
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "facetAddresses",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 1753,
															"src": "6150:17:11",
															"typeDescriptions": {
																"typeIdentifier": "t_array$_t_address_$dyn_storage",
																"typeString": "address[] storage ref"
															}
														},
														"id": 2237,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "length",
														"nodeType": "MemberAccess",
														"src": "6150:24:11",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "6086:88:11",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"id": 2239,
												"nodeType": "ExpressionStatement",
												"src": "6086:88:11"
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 2245,
															"name": "_facetAddress",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2221,
															"src": "6203:13:11",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														],
														"expression": {
															"expression": {
																"id": 2240,
																"name": "ds",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2219,
																"src": "6180:2:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																	"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																}
															},
															"id": 2243,
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "facetAddresses",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 1753,
															"src": "6180:17:11",
															"typeDescriptions": {
																"typeIdentifier": "t_array$_t_address_$dyn_storage",
																"typeString": "address[] storage ref"
															}
														},
														"id": 2244,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "push",
														"nodeType": "MemberAccess",
														"src": "6180:22:11",
														"typeDescriptions": {
															"typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$bound_to$_t_array$_t_address_$dyn_storage_ptr_$",
															"typeString": "function (address[] storage pointer,address)"
														}
													},
													"id": 2246,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "6180:37:11",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2247,
												"nodeType": "ExpressionStatement",
												"src": "6180:37:11"
											}
										]
									},
									"id": 2249,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "addFacet",
									"nameLocation": "5929:8:11",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2222,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2219,
												"mutability": "mutable",
												"name": "ds",
												"nameLocation": "5961:2:11",
												"nodeType": "VariableDeclaration",
												"scope": 2249,
												"src": "5938:25:11",
												"stateVariable": false,
												"storageLocation": "storage",
												"typeDescriptions": {
													"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
													"typeString": "struct LibDiamond.DiamondStorage"
												},
												"typeName": {
													"id": 2218,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 2217,
														"name": "DiamondStorage",
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 1760,
														"src": "5938:14:11"
													},
													"referencedDeclaration": 1760,
													"src": "5938:14:11",
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
														"typeString": "struct LibDiamond.DiamondStorage"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2221,
												"mutability": "mutable",
												"name": "_facetAddress",
												"nameLocation": "5973:13:11",
												"nodeType": "VariableDeclaration",
												"scope": 2249,
												"src": "5965:21:11",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2220,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "5965:7:11",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5937:50:11"
									},
									"returnParameters": {
										"id": 2223,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "5997:0:11"
									},
									"scope": 2554,
									"src": "5920:302:11",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2289,
										"nodeType": "Block",
										"src": "6370:251:11",
										"statements": [
											{
												"expression": {
													"id": 2268,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"expression": {
															"baseExpression": {
																"expression": {
																	"id": 2261,
																	"name": "ds",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2252,
																	"src": "6376:2:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																		"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																	}
																},
																"id": 2264,
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"memberName": "selectorToFacetAndPosition",
																"nodeType": "MemberAccess",
																"referencedDeclaration": 1745,
																"src": "6376:29:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndPosition_$1734_storage_$",
																	"typeString": "mapping(bytes4 => struct LibDiamond.FacetAddressAndPosition storage ref)"
																}
															},
															"id": 2265,
															"indexExpression": {
																"id": 2263,
																"name": "_selector",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2254,
																"src": "6406:9:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes4",
																	"typeString": "bytes4"
																}
															},
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"nodeType": "IndexAccess",
															"src": "6376:40:11",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_FacetAddressAndPosition_$1734_storage",
																"typeString": "struct LibDiamond.FacetAddressAndPosition storage ref"
															}
														},
														"id": 2266,
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"memberName": "functionSelectorPosition",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 1733,
														"src": "6376:65:11",
														"typeDescriptions": {
															"typeIdentifier": "t_uint96",
															"typeString": "uint96"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"id": 2267,
														"name": "_selectorPosition",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2256,
														"src": "6444:17:11",
														"typeDescriptions": {
															"typeIdentifier": "t_uint96",
															"typeString": "uint96"
														}
													},
													"src": "6376:85:11",
													"typeDescriptions": {
														"typeIdentifier": "t_uint96",
														"typeString": "uint96"
													}
												},
												"id": 2269,
												"nodeType": "ExpressionStatement",
												"src": "6376:85:11"
											},
											{
												"expression": {
													"arguments": [
														{
															"id": 2277,
															"name": "_selector",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2254,
															"src": "6531:9:11",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes4",
																"typeString": "bytes4"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes4",
																"typeString": "bytes4"
															}
														],
														"expression": {
															"expression": {
																"baseExpression": {
																	"expression": {
																		"id": 2270,
																		"name": "ds",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2252,
																		"src": "6467:2:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																			"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																		}
																	},
																	"id": 2273,
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberName": "facetFunctionSelectors",
																	"nodeType": "MemberAccess",
																	"referencedDeclaration": 1750,
																	"src": "6467:25:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_mapping$_t_address_$_t_struct$_FacetFunctionSelectors_$1740_storage_$",
																		"typeString": "mapping(address => struct LibDiamond.FacetFunctionSelectors storage ref)"
																	}
																},
																"id": 2274,
																"indexExpression": {
																	"id": 2272,
																	"name": "_facetAddress",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2258,
																	"src": "6493:13:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "IndexAccess",
																"src": "6467:40:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_struct$_FacetFunctionSelectors_$1740_storage",
																	"typeString": "struct LibDiamond.FacetFunctionSelectors storage ref"
																}
															},
															"id": 2275,
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "functionSelectors",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 1737,
															"src": "6467:58:11",
															"typeDescriptions": {
																"typeIdentifier": "t_array$_t_bytes4_$dyn_storage",
																"typeString": "bytes4[] storage ref"
															}
														},
														"id": 2276,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "push",
														"nodeType": "MemberAccess",
														"src": "6467:63:11",
														"typeDescriptions": {
															"typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_bytes4_$dyn_storage_ptr_$_t_bytes4_$returns$__$bound_to$_t_array$_t_bytes4_$dyn_storage_ptr_$",
															"typeString": "function (bytes4[] storage pointer,bytes4)"
														}
													},
													"id": 2278,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "6467:74:11",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2279,
												"nodeType": "ExpressionStatement",
												"src": "6467:74:11"
											},
											{
												"expression": {
													"id": 2287,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"expression": {
															"baseExpression": {
																"expression": {
																	"id": 2280,
																	"name": "ds",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2252,
																	"src": "6547:2:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																		"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																	}
																},
																"id": 2283,
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"memberName": "selectorToFacetAndPosition",
																"nodeType": "MemberAccess",
																"referencedDeclaration": 1745,
																"src": "6547:29:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndPosition_$1734_storage_$",
																	"typeString": "mapping(bytes4 => struct LibDiamond.FacetAddressAndPosition storage ref)"
																}
															},
															"id": 2284,
															"indexExpression": {
																"id": 2282,
																"name": "_selector",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2254,
																"src": "6577:9:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes4",
																	"typeString": "bytes4"
																}
															},
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"nodeType": "IndexAccess",
															"src": "6547:40:11",
															"typeDescriptions": {
																"typeIdentifier": "t_struct$_FacetAddressAndPosition_$1734_storage",
																"typeString": "struct LibDiamond.FacetAddressAndPosition storage ref"
															}
														},
														"id": 2285,
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"memberName": "facetAddress",
														"nodeType": "MemberAccess",
														"referencedDeclaration": 1731,
														"src": "6547:53:11",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"id": 2286,
														"name": "_facetAddress",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2258,
														"src": "6603:13:11",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "6547:69:11",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"id": 2288,
												"nodeType": "ExpressionStatement",
												"src": "6547:69:11"
											}
										]
									},
									"id": 2290,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "addFunction",
									"nameLocation": "6235:11:11",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2259,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2252,
												"mutability": "mutable",
												"name": "ds",
												"nameLocation": "6275:2:11",
												"nodeType": "VariableDeclaration",
												"scope": 2290,
												"src": "6252:25:11",
												"stateVariable": false,
												"storageLocation": "storage",
												"typeDescriptions": {
													"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
													"typeString": "struct LibDiamond.DiamondStorage"
												},
												"typeName": {
													"id": 2251,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 2250,
														"name": "DiamondStorage",
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 1760,
														"src": "6252:14:11"
													},
													"referencedDeclaration": 1760,
													"src": "6252:14:11",
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
														"typeString": "struct LibDiamond.DiamondStorage"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2254,
												"mutability": "mutable",
												"name": "_selector",
												"nameLocation": "6290:9:11",
												"nodeType": "VariableDeclaration",
												"scope": 2290,
												"src": "6283:16:11",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes4",
													"typeString": "bytes4"
												},
												"typeName": {
													"id": 2253,
													"name": "bytes4",
													"nodeType": "ElementaryTypeName",
													"src": "6283:6:11",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes4",
														"typeString": "bytes4"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2256,
												"mutability": "mutable",
												"name": "_selectorPosition",
												"nameLocation": "6312:17:11",
												"nodeType": "VariableDeclaration",
												"scope": 2290,
												"src": "6305:24:11",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint96",
													"typeString": "uint96"
												},
												"typeName": {
													"id": 2255,
													"name": "uint96",
													"nodeType": "ElementaryTypeName",
													"src": "6305:6:11",
													"typeDescriptions": {
														"typeIdentifier": "t_uint96",
														"typeString": "uint96"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2258,
												"mutability": "mutable",
												"name": "_facetAddress",
												"nameLocation": "6343:13:11",
												"nodeType": "VariableDeclaration",
												"scope": 2290,
												"src": "6335:21:11",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2257,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "6335:7:11",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6246:114:11"
									},
									"returnParameters": {
										"id": 2260,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "6370:0:11"
									},
									"scope": 2554,
									"src": "6226:395:11",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2456,
										"nodeType": "Block",
										"src": "6742:1935:11",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"commonType": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															"id": 2306,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 2301,
																"name": "_facetAddress",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2295,
																"src": "6756:13:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "!=",
															"rightExpression": {
																"arguments": [
																	{
																		"hexValue": "30",
																		"id": 2304,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "6781:1:11",
																		"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": 2303,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "6773:7:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_address_$",
																		"typeString": "type(address)"
																	},
																	"typeName": {
																		"id": 2302,
																		"name": "address",
																		"nodeType": "ElementaryTypeName",
																		"src": "6773:7:11",
																		"typeDescriptions": {}
																	}
																},
																"id": 2305,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "typeConversion",
																"lValueRequested": false,
																"names": [],
																"nodeType": "FunctionCall",
																"src": "6773:10:11",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"src": "6756:27:11",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "4c69624469616d6f6e644375743a2043616e27742072656d6f76652066756e6374696f6e207468617420646f65736e2774206578697374",
															"id": 2307,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "6785:57:11",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_2c590e498c4d56c984a7092fd5e89a68b9f4541ce9f97252fb74e44a00ffbb71",
																"typeString": "literal_string \"LibDiamondCut: Can't remove function that doesn't exist\""
															},
															"value": "LibDiamondCut: Can't remove function that doesn't exist"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															{
																"typeIdentifier": "t_stringliteral_2c590e498c4d56c984a7092fd5e89a68b9f4541ce9f97252fb74e44a00ffbb71",
																"typeString": "literal_string \"LibDiamondCut: Can't remove function that doesn't exist\""
															}
														],
														"id": 2300,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "6748:7:11",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 2308,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "6748:95:11",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2309,
												"nodeType": "ExpressionStatement",
												"src": "6748:95:11"
											},
											{
												"expression": {
													"arguments": [
														{
															"commonType": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															"id": 2316,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 2311,
																"name": "_facetAddress",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2295,
																"src": "6930:13:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "!=",
															"rightExpression": {
																"arguments": [
																	{
																		"id": 2314,
																		"name": "this",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4294967268,
																		"src": "6955:4:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_contract$_LibDiamond_$2554",
																			"typeString": "library LibDiamond"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_contract$_LibDiamond_$2554",
																			"typeString": "library LibDiamond"
																		}
																	],
																	"id": 2313,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "6947:7:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_address_$",
																		"typeString": "type(address)"
																	},
																	"typeName": {
																		"id": 2312,
																		"name": "address",
																		"nodeType": "ElementaryTypeName",
																		"src": "6947:7:11",
																		"typeDescriptions": {}
																	}
																},
																"id": 2315,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "typeConversion",
																"lValueRequested": false,
																"names": [],
																"nodeType": "FunctionCall",
																"src": "6947:13:11",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"src": "6930:30:11",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"hexValue": "4c69624469616d6f6e644375743a2043616e27742072656d6f766520696d6d757461626c652066756e6374696f6e",
															"id": 2317,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "string",
															"lValueRequested": false,
															"nodeType": "Literal",
															"src": "6962:48:11",
															"typeDescriptions": {
																"typeIdentifier": "t_stringliteral_8ba063dfaa4be2d2cbe73dbb1364728b0f7031ac048441d5fad19e9541992b21",
																"typeString": "literal_string \"LibDiamondCut: Can't remove immutable function\""
															},
															"value": "LibDiamondCut: Can't remove immutable function"
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															{
																"typeIdentifier": "t_stringliteral_8ba063dfaa4be2d2cbe73dbb1364728b0f7031ac048441d5fad19e9541992b21",
																"typeString": "literal_string \"LibDiamondCut: Can't remove immutable function\""
															}
														],
														"id": 2310,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "6922:7:11",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 2318,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "6922:89:11",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2319,
												"nodeType": "ExpressionStatement",
												"src": "6922:89:11"
											},
											{
												"assignments": [
													2321
												],
												"declarations": [
													{
														"constant": false,
														"id": 2321,
														"mutability": "mutable",
														"name": "selectorPosition",
														"nameLocation": "7095:16:11",
														"nodeType": "VariableDeclaration",
														"scope": 2456,
														"src": "7087:24:11",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 2320,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "7087:7:11",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 2327,
												"initialValue": {
													"expression": {
														"baseExpression": {
															"expression": {
																"id": 2322,
																"name": "ds",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2293,
																"src": "7114:2:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																	"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																}
															},
															"id": 2323,
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "selectorToFacetAndPosition",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 1745,
															"src": "7114:29:11",
															"typeDescriptions": {
																"typeIdentifier": "t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndPosition_$1734_storage_$",
																"typeString": "mapping(bytes4 => struct LibDiamond.FacetAddressAndPosition storage ref)"
															}
														},
														"id": 2325,
														"indexExpression": {
															"id": 2324,
															"name": "_selector",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2297,
															"src": "7144:9:11",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes4",
																"typeString": "bytes4"
															}
														},
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": false,
														"nodeType": "IndexAccess",
														"src": "7114:40:11",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_FacetAddressAndPosition_$1734_storage",
															"typeString": "struct LibDiamond.FacetAddressAndPosition storage ref"
														}
													},
													"id": 2326,
													"isConstant": false,
													"isLValue": true,
													"isPure": false,
													"lValueRequested": false,
													"memberName": "functionSelectorPosition",
													"nodeType": "MemberAccess",
													"referencedDeclaration": 1733,
													"src": "7114:65:11",
													"typeDescriptions": {
														"typeIdentifier": "t_uint96",
														"typeString": "uint96"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "7087:92:11"
											},
											{
												"assignments": [
													2329
												],
												"declarations": [
													{
														"constant": false,
														"id": 2329,
														"mutability": "mutable",
														"name": "lastSelectorPosition",
														"nameLocation": "7193:20:11",
														"nodeType": "VariableDeclaration",
														"scope": 2456,
														"src": "7185:28:11",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 2328,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "7185:7:11",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 2338,
												"initialValue": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 2337,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"expression": {
															"expression": {
																"baseExpression": {
																	"expression": {
																		"id": 2330,
																		"name": "ds",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2293,
																		"src": "7216:2:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																			"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																		}
																	},
																	"id": 2331,
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberName": "facetFunctionSelectors",
																	"nodeType": "MemberAccess",
																	"referencedDeclaration": 1750,
																	"src": "7216:25:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_mapping$_t_address_$_t_struct$_FacetFunctionSelectors_$1740_storage_$",
																		"typeString": "mapping(address => struct LibDiamond.FacetFunctionSelectors storage ref)"
																	}
																},
																"id": 2333,
																"indexExpression": {
																	"id": 2332,
																	"name": "_facetAddress",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2295,
																	"src": "7242:13:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "IndexAccess",
																"src": "7216:40:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_struct$_FacetFunctionSelectors_$1740_storage",
																	"typeString": "struct LibDiamond.FacetFunctionSelectors storage ref"
																}
															},
															"id": 2334,
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "functionSelectors",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 1737,
															"src": "7216:58:11",
															"typeDescriptions": {
																"typeIdentifier": "t_array$_t_bytes4_$dyn_storage",
																"typeString": "bytes4[] storage ref"
															}
														},
														"id": 2335,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "length",
														"nodeType": "MemberAccess",
														"src": "7216:65:11",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "-",
													"rightExpression": {
														"hexValue": "31",
														"id": 2336,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "number",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "7284:1:11",
														"typeDescriptions": {
															"typeIdentifier": "t_rational_1_by_1",
															"typeString": "int_const 1"
														},
														"value": "1"
													},
													"src": "7216:69:11",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "7185:100:11"
											},
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 2341,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 2339,
														"name": "selectorPosition",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2321,
														"src": "7359:16:11",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "!=",
													"rightExpression": {
														"id": 2340,
														"name": "lastSelectorPosition",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2329,
														"src": "7379:20:11",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "7359:40:11",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 2376,
												"nodeType": "IfStatement",
												"src": "7355:365:11",
												"trueBody": {
													"id": 2375,
													"nodeType": "Block",
													"src": "7401:319:11",
													"statements": [
														{
															"assignments": [
																2343
															],
															"declarations": [
																{
																	"constant": false,
																	"id": 2343,
																	"mutability": "mutable",
																	"name": "lastSelector",
																	"nameLocation": "7416:12:11",
																	"nodeType": "VariableDeclaration",
																	"scope": 2375,
																	"src": "7409:19:11",
																	"stateVariable": false,
																	"storageLocation": "default",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes4",
																		"typeString": "bytes4"
																	},
																	"typeName": {
																		"id": 2342,
																		"name": "bytes4",
																		"nodeType": "ElementaryTypeName",
																		"src": "7409:6:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes4",
																			"typeString": "bytes4"
																		}
																	},
																	"visibility": "internal"
																}
															],
															"id": 2351,
															"initialValue": {
																"baseExpression": {
																	"expression": {
																		"baseExpression": {
																			"expression": {
																				"id": 2344,
																				"name": "ds",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 2293,
																				"src": "7431:2:11",
																				"typeDescriptions": {
																					"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																					"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																				}
																			},
																			"id": 2345,
																			"isConstant": false,
																			"isLValue": true,
																			"isPure": false,
																			"lValueRequested": false,
																			"memberName": "facetFunctionSelectors",
																			"nodeType": "MemberAccess",
																			"referencedDeclaration": 1750,
																			"src": "7431:25:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_mapping$_t_address_$_t_struct$_FacetFunctionSelectors_$1740_storage_$",
																				"typeString": "mapping(address => struct LibDiamond.FacetFunctionSelectors storage ref)"
																			}
																		},
																		"id": 2347,
																		"indexExpression": {
																			"id": 2346,
																			"name": "_facetAddress",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 2295,
																			"src": "7457:13:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_address",
																				"typeString": "address"
																			}
																		},
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"nodeType": "IndexAccess",
																		"src": "7431:40:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_struct$_FacetFunctionSelectors_$1740_storage",
																			"typeString": "struct LibDiamond.FacetFunctionSelectors storage ref"
																		}
																	},
																	"id": 2348,
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberName": "functionSelectors",
																	"nodeType": "MemberAccess",
																	"referencedDeclaration": 1737,
																	"src": "7431:58:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_array$_t_bytes4_$dyn_storage",
																		"typeString": "bytes4[] storage ref"
																	}
																},
																"id": 2350,
																"indexExpression": {
																	"id": 2349,
																	"name": "lastSelectorPosition",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2329,
																	"src": "7490:20:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "IndexAccess",
																"src": "7431:80:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes4",
																	"typeString": "bytes4"
																}
															},
															"nodeType": "VariableDeclarationStatement",
															"src": "7409:102:11"
														},
														{
															"expression": {
																"id": 2361,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftHandSide": {
																	"baseExpression": {
																		"expression": {
																			"baseExpression": {
																				"expression": {
																					"id": 2352,
																					"name": "ds",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 2293,
																					"src": "7519:2:11",
																					"typeDescriptions": {
																						"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																						"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																					}
																				},
																				"id": 2355,
																				"isConstant": false,
																				"isLValue": true,
																				"isPure": false,
																				"lValueRequested": false,
																				"memberName": "facetFunctionSelectors",
																				"nodeType": "MemberAccess",
																				"referencedDeclaration": 1750,
																				"src": "7519:25:11",
																				"typeDescriptions": {
																					"typeIdentifier": "t_mapping$_t_address_$_t_struct$_FacetFunctionSelectors_$1740_storage_$",
																					"typeString": "mapping(address => struct LibDiamond.FacetFunctionSelectors storage ref)"
																				}
																			},
																			"id": 2356,
																			"indexExpression": {
																				"id": 2354,
																				"name": "_facetAddress",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 2295,
																				"src": "7545:13:11",
																				"typeDescriptions": {
																					"typeIdentifier": "t_address",
																					"typeString": "address"
																				}
																			},
																			"isConstant": false,
																			"isLValue": true,
																			"isPure": false,
																			"lValueRequested": false,
																			"nodeType": "IndexAccess",
																			"src": "7519:40:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_struct$_FacetFunctionSelectors_$1740_storage",
																				"typeString": "struct LibDiamond.FacetFunctionSelectors storage ref"
																			}
																		},
																		"id": 2357,
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberName": "functionSelectors",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 1737,
																		"src": "7519:58:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_array$_t_bytes4_$dyn_storage",
																			"typeString": "bytes4[] storage ref"
																		}
																	},
																	"id": 2359,
																	"indexExpression": {
																		"id": 2358,
																		"name": "selectorPosition",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2321,
																		"src": "7578:16:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": true,
																	"nodeType": "IndexAccess",
																	"src": "7519:76:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes4",
																		"typeString": "bytes4"
																	}
																},
																"nodeType": "Assignment",
																"operator": "=",
																"rightHandSide": {
																	"id": 2360,
																	"name": "lastSelector",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2343,
																	"src": "7598:12:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes4",
																		"typeString": "bytes4"
																	}
																},
																"src": "7519:91:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_bytes4",
																	"typeString": "bytes4"
																}
															},
															"id": 2362,
															"nodeType": "ExpressionStatement",
															"src": "7519:91:11"
														},
														{
															"expression": {
																"id": 2373,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftHandSide": {
																	"expression": {
																		"baseExpression": {
																			"expression": {
																				"id": 2363,
																				"name": "ds",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 2293,
																				"src": "7618:2:11",
																				"typeDescriptions": {
																					"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																					"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																				}
																			},
																			"id": 2366,
																			"isConstant": false,
																			"isLValue": true,
																			"isPure": false,
																			"lValueRequested": false,
																			"memberName": "selectorToFacetAndPosition",
																			"nodeType": "MemberAccess",
																			"referencedDeclaration": 1745,
																			"src": "7618:29:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndPosition_$1734_storage_$",
																				"typeString": "mapping(bytes4 => struct LibDiamond.FacetAddressAndPosition storage ref)"
																			}
																		},
																		"id": 2367,
																		"indexExpression": {
																			"id": 2365,
																			"name": "lastSelector",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 2343,
																			"src": "7648:12:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bytes4",
																				"typeString": "bytes4"
																			}
																		},
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"nodeType": "IndexAccess",
																		"src": "7618:43:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_struct$_FacetAddressAndPosition_$1734_storage",
																			"typeString": "struct LibDiamond.FacetAddressAndPosition storage ref"
																		}
																	},
																	"id": 2368,
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": true,
																	"memberName": "functionSelectorPosition",
																	"nodeType": "MemberAccess",
																	"referencedDeclaration": 1733,
																	"src": "7618:68:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint96",
																		"typeString": "uint96"
																	}
																},
																"nodeType": "Assignment",
																"operator": "=",
																"rightHandSide": {
																	"arguments": [
																		{
																			"id": 2371,
																			"name": "selectorPosition",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 2321,
																			"src": "7696:16:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		],
																		"id": 2370,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "7689:6:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_uint96_$",
																			"typeString": "type(uint96)"
																		},
																		"typeName": {
																			"id": 2369,
																			"name": "uint96",
																			"nodeType": "ElementaryTypeName",
																			"src": "7689:6:11",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 2372,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "7689:24:11",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint96",
																		"typeString": "uint96"
																	}
																},
																"src": "7618:95:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint96",
																	"typeString": "uint96"
																}
															},
															"id": 2374,
															"nodeType": "ExpressionStatement",
															"src": "7618:95:11"
														}
													]
												}
											},
											{
												"expression": {
													"arguments": [],
													"expression": {
														"argumentTypes": [],
														"expression": {
															"expression": {
																"baseExpression": {
																	"expression": {
																		"id": 2377,
																		"name": "ds",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2293,
																		"src": "7757:2:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																			"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																		}
																	},
																	"id": 2380,
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberName": "facetFunctionSelectors",
																	"nodeType": "MemberAccess",
																	"referencedDeclaration": 1750,
																	"src": "7757:25:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_mapping$_t_address_$_t_struct$_FacetFunctionSelectors_$1740_storage_$",
																		"typeString": "mapping(address => struct LibDiamond.FacetFunctionSelectors storage ref)"
																	}
																},
																"id": 2381,
																"indexExpression": {
																	"id": 2379,
																	"name": "_facetAddress",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2295,
																	"src": "7783:13:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "IndexAccess",
																"src": "7757:40:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_struct$_FacetFunctionSelectors_$1740_storage",
																	"typeString": "struct LibDiamond.FacetFunctionSelectors storage ref"
																}
															},
															"id": 2382,
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "functionSelectors",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 1737,
															"src": "7757:58:11",
															"typeDescriptions": {
																"typeIdentifier": "t_array$_t_bytes4_$dyn_storage",
																"typeString": "bytes4[] storage ref"
															}
														},
														"id": 2383,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"memberName": "pop",
														"nodeType": "MemberAccess",
														"src": "7757:62:11",
														"typeDescriptions": {
															"typeIdentifier": "t_function_arraypop_nonpayable$_t_array$_t_bytes4_$dyn_storage_ptr_$returns$__$bound_to$_t_array$_t_bytes4_$dyn_storage_ptr_$",
															"typeString": "function (bytes4[] storage pointer)"
														}
													},
													"id": 2384,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "7757:64:11",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2385,
												"nodeType": "ExpressionStatement",
												"src": "7757:64:11"
											},
											{
												"expression": {
													"id": 2390,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "UnaryOperation",
													"operator": "delete",
													"prefix": true,
													"src": "7827:47:11",
													"subExpression": {
														"baseExpression": {
															"expression": {
																"id": 2386,
																"name": "ds",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2293,
																"src": "7834:2:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																	"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																}
															},
															"id": 2387,
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "selectorToFacetAndPosition",
															"nodeType": "MemberAccess",
															"referencedDeclaration": 1745,
															"src": "7834:29:11",
															"typeDescriptions": {
																"typeIdentifier": "t_mapping$_t_bytes4_$_t_struct$_FacetAddressAndPosition_$1734_storage_$",
																"typeString": "mapping(bytes4 => struct LibDiamond.FacetAddressAndPosition storage ref)"
															}
														},
														"id": 2389,
														"indexExpression": {
															"id": 2388,
															"name": "_selector",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2297,
															"src": "7864:9:11",
															"typeDescriptions": {
																"typeIdentifier": "t_bytes4",
																"typeString": "bytes4"
															}
														},
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"nodeType": "IndexAccess",
														"src": "7834:40:11",
														"typeDescriptions": {
															"typeIdentifier": "t_struct$_FacetAddressAndPosition_$1734_storage",
															"typeString": "struct LibDiamond.FacetAddressAndPosition storage ref"
														}
													},
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2391,
												"nodeType": "ExpressionStatement",
												"src": "7827:47:11"
											},
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													},
													"id": 2394,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 2392,
														"name": "lastSelectorPosition",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2329,
														"src": "7961:20:11",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "==",
													"rightExpression": {
														"hexValue": "30",
														"id": 2393,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "number",
														"lValueRequested": false,
														"nodeType": "Literal",
														"src": "7985:1:11",
														"typeDescriptions": {
															"typeIdentifier": "t_rational_0_by_1",
															"typeString": "int_const 0"
														},
														"value": "0"
													},
													"src": "7961:25:11",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"id": 2455,
												"nodeType": "IfStatement",
												"src": "7957:716:11",
												"trueBody": {
													"id": 2454,
													"nodeType": "Block",
													"src": "7988:685:11",
													"statements": [
														{
															"assignments": [
																2396
															],
															"declarations": [
																{
																	"constant": false,
																	"id": 2396,
																	"mutability": "mutable",
																	"name": "lastFacetAddressPosition",
																	"nameLocation": "8089:24:11",
																	"nodeType": "VariableDeclaration",
																	"scope": 2454,
																	"src": "8081:32:11",
																	"stateVariable": false,
																	"storageLocation": "default",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"typeName": {
																		"id": 2395,
																		"name": "uint256",
																		"nodeType": "ElementaryTypeName",
																		"src": "8081:7:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"visibility": "internal"
																}
															],
															"id": 2402,
															"initialValue": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 2401,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"expression": {
																		"expression": {
																			"id": 2397,
																			"name": "ds",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 2293,
																			"src": "8116:2:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																				"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																			}
																		},
																		"id": 2398,
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberName": "facetAddresses",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 1753,
																		"src": "8116:17:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_array$_t_address_$dyn_storage",
																			"typeString": "address[] storage ref"
																		}
																	},
																	"id": 2399,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberName": "length",
																	"nodeType": "MemberAccess",
																	"src": "8116:24:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "-",
																"rightExpression": {
																	"hexValue": "31",
																	"id": 2400,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "number",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "8143:1:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_rational_1_by_1",
																		"typeString": "int_const 1"
																	},
																	"value": "1"
																},
																"src": "8116:28:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "VariableDeclarationStatement",
															"src": "8081:63:11"
														},
														{
															"assignments": [
																2404
															],
															"declarations": [
																{
																	"constant": false,
																	"id": 2404,
																	"mutability": "mutable",
																	"name": "facetAddressPosition",
																	"nameLocation": "8160:20:11",
																	"nodeType": "VariableDeclaration",
																	"scope": 2454,
																	"src": "8152:28:11",
																	"stateVariable": false,
																	"storageLocation": "default",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	"typeName": {
																		"id": 2403,
																		"name": "uint256",
																		"nodeType": "ElementaryTypeName",
																		"src": "8152:7:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		}
																	},
																	"visibility": "internal"
																}
															],
															"id": 2410,
															"initialValue": {
																"expression": {
																	"baseExpression": {
																		"expression": {
																			"id": 2405,
																			"name": "ds",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 2293,
																			"src": "8183:2:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																				"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																			}
																		},
																		"id": 2406,
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberName": "facetFunctionSelectors",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 1750,
																		"src": "8183:25:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_mapping$_t_address_$_t_struct$_FacetFunctionSelectors_$1740_storage_$",
																			"typeString": "mapping(address => struct LibDiamond.FacetFunctionSelectors storage ref)"
																		}
																	},
																	"id": 2408,
																	"indexExpression": {
																		"id": 2407,
																		"name": "_facetAddress",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2295,
																		"src": "8209:13:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	},
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": false,
																	"nodeType": "IndexAccess",
																	"src": "8183:40:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_struct$_FacetFunctionSelectors_$1740_storage",
																		"typeString": "struct LibDiamond.FacetFunctionSelectors storage ref"
																	}
																},
																"id": 2409,
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"memberName": "facetAddressPosition",
																"nodeType": "MemberAccess",
																"referencedDeclaration": 1739,
																"src": "8183:61:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "VariableDeclarationStatement",
															"src": "8152:92:11"
														},
														{
															"condition": {
																"commonType": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																},
																"id": 2413,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 2411,
																	"name": "facetAddressPosition",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2404,
																	"src": "8256:20:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "!=",
																"rightExpression": {
																	"id": 2412,
																	"name": "lastFacetAddressPosition",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2396,
																	"src": "8280:24:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"src": "8256:48:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"id": 2439,
															"nodeType": "IfStatement",
															"src": "8252:308:11",
															"trueBody": {
																"id": 2438,
																"nodeType": "Block",
																"src": "8306:254:11",
																"statements": [
																	{
																		"assignments": [
																			2415
																		],
																		"declarations": [
																			{
																				"constant": false,
																				"id": 2415,
																				"mutability": "mutable",
																				"name": "lastFacetAddress",
																				"nameLocation": "8324:16:11",
																				"nodeType": "VariableDeclaration",
																				"scope": 2438,
																				"src": "8316:24:11",
																				"stateVariable": false,
																				"storageLocation": "default",
																				"typeDescriptions": {
																					"typeIdentifier": "t_address",
																					"typeString": "address"
																				},
																				"typeName": {
																					"id": 2414,
																					"name": "address",
																					"nodeType": "ElementaryTypeName",
																					"src": "8316:7:11",
																					"stateMutability": "nonpayable",
																					"typeDescriptions": {
																						"typeIdentifier": "t_address",
																						"typeString": "address"
																					}
																				},
																				"visibility": "internal"
																			}
																		],
																		"id": 2420,
																		"initialValue": {
																			"baseExpression": {
																				"expression": {
																					"id": 2416,
																					"name": "ds",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 2293,
																					"src": "8343:2:11",
																					"typeDescriptions": {
																						"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																						"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																					}
																				},
																				"id": 2417,
																				"isConstant": false,
																				"isLValue": true,
																				"isPure": false,
																				"lValueRequested": false,
																				"memberName": "facetAddresses",
																				"nodeType": "MemberAccess",
																				"referencedDeclaration": 1753,
																				"src": "8343:17:11",
																				"typeDescriptions": {
																					"typeIdentifier": "t_array$_t_address_$dyn_storage",
																					"typeString": "address[] storage ref"
																				}
																			},
																			"id": 2419,
																			"indexExpression": {
																				"id": 2418,
																				"name": "lastFacetAddressPosition",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 2396,
																				"src": "8361:24:11",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"isConstant": false,
																			"isLValue": true,
																			"isPure": false,
																			"lValueRequested": false,
																			"nodeType": "IndexAccess",
																			"src": "8343:43:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_address",
																				"typeString": "address"
																			}
																		},
																		"nodeType": "VariableDeclarationStatement",
																		"src": "8316:70:11"
																	},
																	{
																		"expression": {
																			"id": 2427,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftHandSide": {
																				"baseExpression": {
																					"expression": {
																						"id": 2421,
																						"name": "ds",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 2293,
																						"src": "8396:2:11",
																						"typeDescriptions": {
																							"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																							"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																						}
																					},
																					"id": 2424,
																					"isConstant": false,
																					"isLValue": true,
																					"isPure": false,
																					"lValueRequested": false,
																					"memberName": "facetAddresses",
																					"nodeType": "MemberAccess",
																					"referencedDeclaration": 1753,
																					"src": "8396:17:11",
																					"typeDescriptions": {
																						"typeIdentifier": "t_array$_t_address_$dyn_storage",
																						"typeString": "address[] storage ref"
																					}
																				},
																				"id": 2425,
																				"indexExpression": {
																					"id": 2423,
																					"name": "facetAddressPosition",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 2404,
																					"src": "8414:20:11",
																					"typeDescriptions": {
																						"typeIdentifier": "t_uint256",
																						"typeString": "uint256"
																					}
																				},
																				"isConstant": false,
																				"isLValue": true,
																				"isPure": false,
																				"lValueRequested": true,
																				"nodeType": "IndexAccess",
																				"src": "8396:39:11",
																				"typeDescriptions": {
																					"typeIdentifier": "t_address",
																					"typeString": "address"
																				}
																			},
																			"nodeType": "Assignment",
																			"operator": "=",
																			"rightHandSide": {
																				"id": 2426,
																				"name": "lastFacetAddress",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 2415,
																				"src": "8438:16:11",
																				"typeDescriptions": {
																					"typeIdentifier": "t_address",
																					"typeString": "address"
																				}
																			},
																			"src": "8396:58:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_address",
																				"typeString": "address"
																			}
																		},
																		"id": 2428,
																		"nodeType": "ExpressionStatement",
																		"src": "8396:58:11"
																	},
																	{
																		"expression": {
																			"id": 2436,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftHandSide": {
																				"expression": {
																					"baseExpression": {
																						"expression": {
																							"id": 2429,
																							"name": "ds",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [],
																							"referencedDeclaration": 2293,
																							"src": "8464:2:11",
																							"typeDescriptions": {
																								"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																								"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																							}
																						},
																						"id": 2432,
																						"isConstant": false,
																						"isLValue": true,
																						"isPure": false,
																						"lValueRequested": false,
																						"memberName": "facetFunctionSelectors",
																						"nodeType": "MemberAccess",
																						"referencedDeclaration": 1750,
																						"src": "8464:25:11",
																						"typeDescriptions": {
																							"typeIdentifier": "t_mapping$_t_address_$_t_struct$_FacetFunctionSelectors_$1740_storage_$",
																							"typeString": "mapping(address => struct LibDiamond.FacetFunctionSelectors storage ref)"
																						}
																					},
																					"id": 2433,
																					"indexExpression": {
																						"id": 2431,
																						"name": "lastFacetAddress",
																						"nodeType": "Identifier",
																						"overloadedDeclarations": [],
																						"referencedDeclaration": 2415,
																						"src": "8490:16:11",
																						"typeDescriptions": {
																							"typeIdentifier": "t_address",
																							"typeString": "address"
																						}
																					},
																					"isConstant": false,
																					"isLValue": true,
																					"isPure": false,
																					"lValueRequested": false,
																					"nodeType": "IndexAccess",
																					"src": "8464:43:11",
																					"typeDescriptions": {
																						"typeIdentifier": "t_struct$_FacetFunctionSelectors_$1740_storage",
																						"typeString": "struct LibDiamond.FacetFunctionSelectors storage ref"
																					}
																				},
																				"id": 2434,
																				"isConstant": false,
																				"isLValue": true,
																				"isPure": false,
																				"lValueRequested": true,
																				"memberName": "facetAddressPosition",
																				"nodeType": "MemberAccess",
																				"referencedDeclaration": 1739,
																				"src": "8464:64:11",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "Assignment",
																			"operator": "=",
																			"rightHandSide": {
																				"id": 2435,
																				"name": "facetAddressPosition",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 2404,
																				"src": "8531:20:11",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"src": "8464:87:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"id": 2437,
																		"nodeType": "ExpressionStatement",
																		"src": "8464:87:11"
																	}
																]
															}
														},
														{
															"expression": {
																"arguments": [],
																"expression": {
																	"argumentTypes": [],
																	"expression": {
																		"expression": {
																			"id": 2440,
																			"name": "ds",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 2293,
																			"src": "8567:2:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																				"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																			}
																		},
																		"id": 2443,
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"memberName": "facetAddresses",
																		"nodeType": "MemberAccess",
																		"referencedDeclaration": 1753,
																		"src": "8567:17:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_array$_t_address_$dyn_storage",
																			"typeString": "address[] storage ref"
																		}
																	},
																	"id": 2444,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberName": "pop",
																	"nodeType": "MemberAccess",
																	"src": "8567:21:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_arraypop_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$returns$__$bound_to$_t_array$_t_address_$dyn_storage_ptr_$",
																		"typeString": "function (address[] storage pointer)"
																	}
																},
																"id": 2445,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"names": [],
																"nodeType": "FunctionCall",
																"src": "8567:23:11",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 2446,
															"nodeType": "ExpressionStatement",
															"src": "8567:23:11"
														},
														{
															"expression": {
																"id": 2452,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "UnaryOperation",
																"operator": "delete",
																"prefix": true,
																"src": "8598:68:11",
																"subExpression": {
																	"expression": {
																		"baseExpression": {
																			"expression": {
																				"id": 2447,
																				"name": "ds",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 2293,
																				"src": "8605:2:11",
																				"typeDescriptions": {
																					"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
																					"typeString": "struct LibDiamond.DiamondStorage storage pointer"
																				}
																			},
																			"id": 2448,
																			"isConstant": false,
																			"isLValue": true,
																			"isPure": false,
																			"lValueRequested": false,
																			"memberName": "facetFunctionSelectors",
																			"nodeType": "MemberAccess",
																			"referencedDeclaration": 1750,
																			"src": "8605:25:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_mapping$_t_address_$_t_struct$_FacetFunctionSelectors_$1740_storage_$",
																				"typeString": "mapping(address => struct LibDiamond.FacetFunctionSelectors storage ref)"
																			}
																		},
																		"id": 2450,
																		"indexExpression": {
																			"id": 2449,
																			"name": "_facetAddress",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 2295,
																			"src": "8631:13:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_address",
																				"typeString": "address"
																			}
																		},
																		"isConstant": false,
																		"isLValue": true,
																		"isPure": false,
																		"lValueRequested": false,
																		"nodeType": "IndexAccess",
																		"src": "8605:40:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_struct$_FacetFunctionSelectors_$1740_storage",
																			"typeString": "struct LibDiamond.FacetFunctionSelectors storage ref"
																		}
																	},
																	"id": 2451,
																	"isConstant": false,
																	"isLValue": true,
																	"isPure": false,
																	"lValueRequested": true,
																	"memberName": "facetAddressPosition",
																	"nodeType": "MemberAccess",
																	"referencedDeclaration": 1739,
																	"src": "8605:61:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 2453,
															"nodeType": "ExpressionStatement",
															"src": "8598:68:11"
														}
													]
												}
											}
										]
									},
									"id": 2457,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "removeFunction",
									"nameLocation": "6634:14:11",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2298,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2293,
												"mutability": "mutable",
												"name": "ds",
												"nameLocation": "6677:2:11",
												"nodeType": "VariableDeclaration",
												"scope": 2457,
												"src": "6654:25:11",
												"stateVariable": false,
												"storageLocation": "storage",
												"typeDescriptions": {
													"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
													"typeString": "struct LibDiamond.DiamondStorage"
												},
												"typeName": {
													"id": 2292,
													"nodeType": "UserDefinedTypeName",
													"pathNode": {
														"id": 2291,
														"name": "DiamondStorage",
														"nodeType": "IdentifierPath",
														"referencedDeclaration": 1760,
														"src": "6654:14:11"
													},
													"referencedDeclaration": 1760,
													"src": "6654:14:11",
													"typeDescriptions": {
														"typeIdentifier": "t_struct$_DiamondStorage_$1760_storage_ptr",
														"typeString": "struct LibDiamond.DiamondStorage"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2295,
												"mutability": "mutable",
												"name": "_facetAddress",
												"nameLocation": "6693:13:11",
												"nodeType": "VariableDeclaration",
												"scope": 2457,
												"src": "6685:21:11",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2294,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "6685:7:11",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2297,
												"mutability": "mutable",
												"name": "_selector",
												"nameLocation": "6719:9:11",
												"nodeType": "VariableDeclaration",
												"scope": 2457,
												"src": "6712:16:11",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes4",
													"typeString": "bytes4"
												},
												"typeName": {
													"id": 2296,
													"name": "bytes4",
													"nodeType": "ElementaryTypeName",
													"src": "6712:6:11",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes4",
														"typeString": "bytes4"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6648:84:11"
									},
									"returnParameters": {
										"id": 2299,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "6742:0:11"
									},
									"scope": 2554,
									"src": "6625:2052:11",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2533,
										"nodeType": "Block",
										"src": "8759:732:11",
										"statements": [
											{
												"condition": {
													"commonType": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													},
													"id": 2469,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftExpression": {
														"id": 2464,
														"name": "_init",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2459,
														"src": "8769:5:11",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"nodeType": "BinaryOperation",
													"operator": "==",
													"rightExpression": {
														"arguments": [
															{
																"hexValue": "30",
																"id": 2467,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "8786:1:11",
																"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": 2466,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"lValueRequested": false,
															"nodeType": "ElementaryTypeNameExpression",
															"src": "8778:7:11",
															"typeDescriptions": {
																"typeIdentifier": "t_type$_t_address_$",
																"typeString": "type(address)"
															},
															"typeName": {
																"id": 2465,
																"name": "address",
																"nodeType": "ElementaryTypeName",
																"src": "8778:7:11",
																"typeDescriptions": {}
															}
														},
														"id": 2468,
														"isConstant": false,
														"isLValue": false,
														"isPure": true,
														"kind": "typeConversion",
														"lValueRequested": false,
														"names": [],
														"nodeType": "FunctionCall",
														"src": "8778:10:11",
														"tryCall": false,
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"src": "8769:19:11",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"falseBody": {
													"id": 2531,
													"nodeType": "Block",
													"src": "8905:582:11",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 2483,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"expression": {
																				"id": 2480,
																				"name": "_calldata",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 2461,
																				"src": "8921:9:11",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bytes_memory_ptr",
																					"typeString": "bytes memory"
																				}
																			},
																			"id": 2481,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"memberName": "length",
																			"nodeType": "MemberAccess",
																			"src": "8921:16:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": ">",
																		"rightExpression": {
																			"hexValue": "30",
																			"id": 2482,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "8940:1:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_0_by_1",
																				"typeString": "int_const 0"
																			},
																			"value": "0"
																		},
																		"src": "8921:20:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	{
																		"hexValue": "4c69624469616d6f6e644375743a205f63616c6c6461746120697320656d70747920627574205f696e6974206973206e6f742061646472657373283029",
																		"id": 2484,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "string",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "8943:63:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_stringliteral_868d165ec2461661b624442252aed6a645399bfae7b60083a77ea1b61b084042",
																			"typeString": "literal_string \"LibDiamondCut: _calldata is empty but _init is not address(0)\""
																		},
																		"value": "LibDiamondCut: _calldata is empty but _init is not address(0)"
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		},
																		{
																			"typeIdentifier": "t_stringliteral_868d165ec2461661b624442252aed6a645399bfae7b60083a77ea1b61b084042",
																			"typeString": "literal_string \"LibDiamondCut: _calldata is empty but _init is not address(0)\""
																		}
																	],
																	"id": 2479,
																	"name": "require",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [
																		4294967278,
																		4294967278
																	],
																	"referencedDeclaration": 4294967278,
																	"src": "8913:7:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
																		"typeString": "function (bool,string memory) pure"
																	}
																},
																"id": 2485,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"names": [],
																"nodeType": "FunctionCall",
																"src": "8913:94:11",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 2486,
															"nodeType": "ExpressionStatement",
															"src": "8913:94:11"
														},
														{
															"condition": {
																"commonType": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																},
																"id": 2492,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"leftExpression": {
																	"id": 2487,
																	"name": "_init",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2459,
																	"src": "9019:5:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																"nodeType": "BinaryOperation",
																"operator": "!=",
																"rightExpression": {
																	"arguments": [
																		{
																			"id": 2490,
																			"name": "this",
																			"nodeType": "Identifier",
																			"overloadedDeclarations": [],
																			"referencedDeclaration": 4294967268,
																			"src": "9036:4:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_contract$_LibDiamond_$2554",
																				"typeString": "library LibDiamond"
																			}
																		}
																	],
																	"expression": {
																		"argumentTypes": [
																			{
																				"typeIdentifier": "t_contract$_LibDiamond_$2554",
																				"typeString": "library LibDiamond"
																			}
																		],
																		"id": 2489,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"lValueRequested": false,
																		"nodeType": "ElementaryTypeNameExpression",
																		"src": "9028:7:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_type$_t_address_$",
																			"typeString": "type(address)"
																		},
																		"typeName": {
																			"id": 2488,
																			"name": "address",
																			"nodeType": "ElementaryTypeName",
																			"src": "9028:7:11",
																			"typeDescriptions": {}
																		}
																	},
																	"id": 2491,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"kind": "typeConversion",
																	"lValueRequested": false,
																	"names": [],
																	"nodeType": "FunctionCall",
																	"src": "9028:13:11",
																	"tryCall": false,
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																"src": "9019:22:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"id": 2499,
															"nodeType": "IfStatement",
															"src": "9015:120:11",
															"trueBody": {
																"id": 2498,
																"nodeType": "Block",
																"src": "9043:92:11",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"id": 2494,
																					"name": "_init",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 2459,
																					"src": "9076:5:11",
																					"typeDescriptions": {
																						"typeIdentifier": "t_address",
																						"typeString": "address"
																					}
																				},
																				{
																					"hexValue": "4c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f6465",
																					"id": 2495,
																					"isConstant": false,
																					"isLValue": false,
																					"isPure": true,
																					"kind": "string",
																					"lValueRequested": false,
																					"nodeType": "Literal",
																					"src": "9083:42:11",
																					"typeDescriptions": {
																						"typeIdentifier": "t_stringliteral_460f8f0920c649146ef02741816b1cf9ce4f02ea288ceb73adf027cefe9069a0",
																						"typeString": "literal_string \"LibDiamondCut: _init address has no code\""
																					},
																					"value": "LibDiamondCut: _init address has no code"
																				}
																			],
																			"expression": {
																				"argumentTypes": [
																					{
																						"typeIdentifier": "t_address",
																						"typeString": "address"
																					},
																					{
																						"typeIdentifier": "t_stringliteral_460f8f0920c649146ef02741816b1cf9ce4f02ea288ceb73adf027cefe9069a0",
																						"typeString": "literal_string \"LibDiamondCut: _init address has no code\""
																					}
																				],
																				"id": 2493,
																				"name": "enforceHasContractCode",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 2553,
																				"src": "9053:22:11",
																				"typeDescriptions": {
																					"typeIdentifier": "t_function_internal_view$_t_address_$_t_string_memory_ptr_$returns$__$",
																					"typeString": "function (address,string memory) view"
																				}
																			},
																			"id": 2496,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"kind": "functionCall",
																			"lValueRequested": false,
																			"names": [],
																			"nodeType": "FunctionCall",
																			"src": "9053:73:11",
																			"tryCall": false,
																			"typeDescriptions": {
																				"typeIdentifier": "t_tuple$__$",
																				"typeString": "tuple()"
																			}
																		},
																		"id": 2497,
																		"nodeType": "ExpressionStatement",
																		"src": "9053:73:11"
																	}
																]
															}
														},
														{
															"assignments": [
																2501,
																2503
															],
															"declarations": [
																{
																	"constant": false,
																	"id": 2501,
																	"mutability": "mutable",
																	"name": "success",
																	"nameLocation": "9205:7:11",
																	"nodeType": "VariableDeclaration",
																	"scope": 2531,
																	"src": "9200:12:11",
																	"stateVariable": false,
																	"storageLocation": "default",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	"typeName": {
																		"id": 2500,
																		"name": "bool",
																		"nodeType": "ElementaryTypeName",
																		"src": "9200:4:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	"visibility": "internal"
																},
																{
																	"constant": false,
																	"id": 2503,
																	"mutability": "mutable",
																	"name": "error",
																	"nameLocation": "9227:5:11",
																	"nodeType": "VariableDeclaration",
																	"scope": 2531,
																	"src": "9214:18:11",
																	"stateVariable": false,
																	"storageLocation": "memory",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes_memory_ptr",
																		"typeString": "bytes"
																	},
																	"typeName": {
																		"id": 2502,
																		"name": "bytes",
																		"nodeType": "ElementaryTypeName",
																		"src": "9214:5:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes_storage_ptr",
																			"typeString": "bytes"
																		}
																	},
																	"visibility": "internal"
																}
															],
															"id": 2508,
															"initialValue": {
																"arguments": [
																	{
																		"id": 2506,
																		"name": "_calldata",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2461,
																		"src": "9255:9:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bytes_memory_ptr",
																			"typeString": "bytes memory"
																		}
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bytes_memory_ptr",
																			"typeString": "bytes memory"
																		}
																	],
																	"expression": {
																		"id": 2504,
																		"name": "_init",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 2459,
																		"src": "9236:5:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_address",
																			"typeString": "address"
																		}
																	},
																	"id": 2505,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberName": "delegatecall",
																	"nodeType": "MemberAccess",
																	"src": "9236:18:11",
																	"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": 2507,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"names": [],
																"nodeType": "FunctionCall",
																"src": "9236:29:11",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
																	"typeString": "tuple(bool,bytes memory)"
																}
															},
															"nodeType": "VariableDeclarationStatement",
															"src": "9199:66:11"
														},
														{
															"condition": {
																"id": 2510,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "UnaryOperation",
																"operator": "!",
																"prefix": true,
																"src": "9277:8:11",
																"subExpression": {
																	"id": 2509,
																	"name": "success",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2501,
																	"src": "9278:7:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																"typeDescriptions": {
																	"typeIdentifier": "t_bool",
																	"typeString": "bool"
																}
															},
															"id": 2530,
															"nodeType": "IfStatement",
															"src": "9273:208:11",
															"trueBody": {
																"id": 2529,
																"nodeType": "Block",
																"src": "9287:194:11",
																"statements": [
																	{
																		"condition": {
																			"commonType": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			},
																			"id": 2514,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"leftExpression": {
																				"expression": {
																					"id": 2511,
																					"name": "error",
																					"nodeType": "Identifier",
																					"overloadedDeclarations": [],
																					"referencedDeclaration": 2503,
																					"src": "9301:5:11",
																					"typeDescriptions": {
																						"typeIdentifier": "t_bytes_memory_ptr",
																						"typeString": "bytes memory"
																					}
																				},
																				"id": 2512,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": false,
																				"lValueRequested": false,
																				"memberName": "length",
																				"nodeType": "MemberAccess",
																				"src": "9301:12:11",
																				"typeDescriptions": {
																					"typeIdentifier": "t_uint256",
																					"typeString": "uint256"
																				}
																			},
																			"nodeType": "BinaryOperation",
																			"operator": ">",
																			"rightExpression": {
																				"hexValue": "30",
																				"id": 2513,
																				"isConstant": false,
																				"isLValue": false,
																				"isPure": true,
																				"kind": "number",
																				"lValueRequested": false,
																				"nodeType": "Literal",
																				"src": "9316:1:11",
																				"typeDescriptions": {
																					"typeIdentifier": "t_rational_0_by_1",
																					"typeString": "int_const 0"
																				},
																				"value": "0"
																			},
																			"src": "9301:16:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_bool",
																				"typeString": "bool"
																			}
																		},
																		"falseBody": {
																			"id": 2527,
																			"nodeType": "Block",
																			"src": "9402:71:11",
																			"statements": [
																				{
																					"expression": {
																						"arguments": [
																							{
																								"hexValue": "4c69624469616d6f6e644375743a205f696e69742066756e6374696f6e207265766572746564",
																								"id": 2524,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": true,
																								"kind": "string",
																								"lValueRequested": false,
																								"nodeType": "Literal",
																								"src": "9421:40:11",
																								"typeDescriptions": {
																									"typeIdentifier": "t_stringliteral_080b2fe78815767d522290509c8fce2af708c8a54455ca1b0cc978c92822465d",
																									"typeString": "literal_string \"LibDiamondCut: _init function reverted\""
																								},
																								"value": "LibDiamondCut: _init function reverted"
																							}
																						],
																						"expression": {
																							"argumentTypes": [
																								{
																									"typeIdentifier": "t_stringliteral_080b2fe78815767d522290509c8fce2af708c8a54455ca1b0cc978c92822465d",
																									"typeString": "literal_string \"LibDiamondCut: _init function reverted\""
																								}
																							],
																							"id": 2523,
																							"name": "revert",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [
																								4294967277,
																								4294967277
																							],
																							"referencedDeclaration": 4294967277,
																							"src": "9414:6:11",
																							"typeDescriptions": {
																								"typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
																								"typeString": "function (string memory) pure"
																							}
																						},
																						"id": 2525,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"kind": "functionCall",
																						"lValueRequested": false,
																						"names": [],
																						"nodeType": "FunctionCall",
																						"src": "9414:48:11",
																						"tryCall": false,
																						"typeDescriptions": {
																							"typeIdentifier": "t_tuple$__$",
																							"typeString": "tuple()"
																						}
																					},
																					"id": 2526,
																					"nodeType": "ExpressionStatement",
																					"src": "9414:48:11"
																				}
																			]
																		},
																		"id": 2528,
																		"nodeType": "IfStatement",
																		"src": "9297:176:11",
																		"trueBody": {
																			"id": 2522,
																			"nodeType": "Block",
																			"src": "9319:77:11",
																			"statements": [
																				{
																					"expression": {
																						"arguments": [
																							{
																								"arguments": [
																									{
																										"id": 2518,
																										"name": "error",
																										"nodeType": "Identifier",
																										"overloadedDeclarations": [],
																										"referencedDeclaration": 2503,
																										"src": "9378:5:11",
																										"typeDescriptions": {
																											"typeIdentifier": "t_bytes_memory_ptr",
																											"typeString": "bytes memory"
																										}
																									}
																								],
																								"expression": {
																									"argumentTypes": [
																										{
																											"typeIdentifier": "t_bytes_memory_ptr",
																											"typeString": "bytes memory"
																										}
																									],
																									"id": 2517,
																									"isConstant": false,
																									"isLValue": false,
																									"isPure": true,
																									"lValueRequested": false,
																									"nodeType": "ElementaryTypeNameExpression",
																									"src": "9371:6:11",
																									"typeDescriptions": {
																										"typeIdentifier": "t_type$_t_string_storage_ptr_$",
																										"typeString": "type(string storage pointer)"
																									},
																									"typeName": {
																										"id": 2516,
																										"name": "string",
																										"nodeType": "ElementaryTypeName",
																										"src": "9371:6:11",
																										"typeDescriptions": {}
																									}
																								},
																								"id": 2519,
																								"isConstant": false,
																								"isLValue": false,
																								"isPure": false,
																								"kind": "typeConversion",
																								"lValueRequested": false,
																								"names": [],
																								"nodeType": "FunctionCall",
																								"src": "9371:13:11",
																								"tryCall": false,
																								"typeDescriptions": {
																									"typeIdentifier": "t_string_memory_ptr",
																									"typeString": "string memory"
																								}
																							}
																						],
																						"expression": {
																							"argumentTypes": [
																								{
																									"typeIdentifier": "t_string_memory_ptr",
																									"typeString": "string memory"
																								}
																							],
																							"id": 2515,
																							"name": "revert",
																							"nodeType": "Identifier",
																							"overloadedDeclarations": [
																								4294967277,
																								4294967277
																							],
																							"referencedDeclaration": 4294967277,
																							"src": "9364:6:11",
																							"typeDescriptions": {
																								"typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
																								"typeString": "function (string memory) pure"
																							}
																						},
																						"id": 2520,
																						"isConstant": false,
																						"isLValue": false,
																						"isPure": false,
																						"kind": "functionCall",
																						"lValueRequested": false,
																						"names": [],
																						"nodeType": "FunctionCall",
																						"src": "9364:21:11",
																						"tryCall": false,
																						"typeDescriptions": {
																							"typeIdentifier": "t_tuple$__$",
																							"typeString": "tuple()"
																						}
																					},
																					"id": 2521,
																					"nodeType": "ExpressionStatement",
																					"src": "9364:21:11"
																				}
																			]
																		}
																	}
																]
															}
														}
													]
												},
												"id": 2532,
												"nodeType": "IfStatement",
												"src": "8765:722:11",
												"trueBody": {
													"id": 2478,
													"nodeType": "Block",
													"src": "8790:109:11",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"commonType": {
																			"typeIdentifier": "t_uint256",
																			"typeString": "uint256"
																		},
																		"id": 2474,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": false,
																		"lValueRequested": false,
																		"leftExpression": {
																			"expression": {
																				"id": 2471,
																				"name": "_calldata",
																				"nodeType": "Identifier",
																				"overloadedDeclarations": [],
																				"referencedDeclaration": 2461,
																				"src": "8806:9:11",
																				"typeDescriptions": {
																					"typeIdentifier": "t_bytes_memory_ptr",
																					"typeString": "bytes memory"
																				}
																			},
																			"id": 2472,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": false,
																			"lValueRequested": false,
																			"memberName": "length",
																			"nodeType": "MemberAccess",
																			"src": "8806:16:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_uint256",
																				"typeString": "uint256"
																			}
																		},
																		"nodeType": "BinaryOperation",
																		"operator": "==",
																		"rightExpression": {
																			"hexValue": "30",
																			"id": 2473,
																			"isConstant": false,
																			"isLValue": false,
																			"isPure": true,
																			"kind": "number",
																			"lValueRequested": false,
																			"nodeType": "Literal",
																			"src": "8826:1:11",
																			"typeDescriptions": {
																				"typeIdentifier": "t_rational_0_by_1",
																				"typeString": "int_const 0"
																			},
																			"value": "0"
																		},
																		"src": "8806:21:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		}
																	},
																	{
																		"hexValue": "4c69624469616d6f6e644375743a205f696e69742069732061646472657373283029206275745f63616c6c64617461206973206e6f7420656d707479",
																		"id": 2475,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "string",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "8829:62:11",
																		"typeDescriptions": {
																			"typeIdentifier": "t_stringliteral_046c761a688d1dc3c500562bc5aaa3544f01f394f9bb3b69aa2a950a45afb1f8",
																			"typeString": "literal_string \"LibDiamondCut: _init is address(0) but_calldata is not empty\""
																		},
																		"value": "LibDiamondCut: _init is address(0) but_calldata is not empty"
																	}
																],
																"expression": {
																	"argumentTypes": [
																		{
																			"typeIdentifier": "t_bool",
																			"typeString": "bool"
																		},
																		{
																			"typeIdentifier": "t_stringliteral_046c761a688d1dc3c500562bc5aaa3544f01f394f9bb3b69aa2a950a45afb1f8",
																			"typeString": "literal_string \"LibDiamondCut: _init is address(0) but_calldata is not empty\""
																		}
																	],
																	"id": 2470,
																	"name": "require",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [
																		4294967278,
																		4294967278
																	],
																	"referencedDeclaration": 4294967278,
																	"src": "8798:7:11",
																	"typeDescriptions": {
																		"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
																		"typeString": "function (bool,string memory) pure"
																	}
																},
																"id": 2476,
																"isConstant": false,
																"isLValue": false,
																"isPure": false,
																"kind": "functionCall",
																"lValueRequested": false,
																"names": [],
																"nodeType": "FunctionCall",
																"src": "8798:94:11",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_tuple$__$",
																	"typeString": "tuple()"
																}
															},
															"id": 2477,
															"nodeType": "ExpressionStatement",
															"src": "8798:94:11"
														}
													]
												}
											}
										]
									},
									"id": 2534,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "initializeDiamondCut",
									"nameLocation": "8690:20:11",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2462,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2459,
												"mutability": "mutable",
												"name": "_init",
												"nameLocation": "8719:5:11",
												"nodeType": "VariableDeclaration",
												"scope": 2534,
												"src": "8711:13:11",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2458,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "8711:7:11",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2461,
												"mutability": "mutable",
												"name": "_calldata",
												"nameLocation": "8739:9:11",
												"nodeType": "VariableDeclaration",
												"scope": 2534,
												"src": "8726:22:11",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 2460,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "8726:5:11",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "8710:39:11"
									},
									"returnParameters": {
										"id": 2463,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "8759:0:11"
									},
									"scope": 2554,
									"src": "8681:810:11",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2552,
										"nodeType": "Block",
										"src": "9589:195:11",
										"statements": [
											{
												"assignments": [
													2542
												],
												"declarations": [
													{
														"constant": false,
														"id": 2542,
														"mutability": "mutable",
														"name": "contractSize",
														"nameLocation": "9603:12:11",
														"nodeType": "VariableDeclaration",
														"scope": 2552,
														"src": "9595:20:11",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 2541,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "9595:7:11",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 2543,
												"nodeType": "VariableDeclarationStatement",
												"src": "9595:20:11"
											},
											{
												"AST": {
													"nodeType": "YulBlock",
													"src": "9682:52:11",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "9690:38:11",
															"value": {
																"arguments": [
																	{
																		"name": "_contract",
																		"nodeType": "YulIdentifier",
																		"src": "9718:9:11"
																	}
																],
																"functionName": {
																	"name": "extcodesize",
																	"nodeType": "YulIdentifier",
																	"src": "9706:11:11"
																},
																"nodeType": "YulFunctionCall",
																"src": "9706:22:11"
															},
															"variableNames": [
																{
																	"name": "contractSize",
																	"nodeType": "YulIdentifier",
																	"src": "9690:12:11"
																}
															]
														}
													]
												},
												"evmVersion": "istanbul",
												"externalReferences": [
													{
														"declaration": 2536,
														"isOffset": false,
														"isSlot": false,
														"src": "9718:9:11",
														"valueSize": 1
													},
													{
														"declaration": 2542,
														"isOffset": false,
														"isSlot": false,
														"src": "9690:12:11",
														"valueSize": 1
													}
												],
												"id": 2544,
												"nodeType": "InlineAssembly",
												"src": "9673:61:11"
											},
											{
												"expression": {
													"arguments": [
														{
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 2548,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 2546,
																"name": "contractSize",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 2542,
																"src": "9747:12:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": ">",
															"rightExpression": {
																"hexValue": "30",
																"id": 2547,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "number",
																"lValueRequested": false,
																"nodeType": "Literal",
																"src": "9762:1:11",
																"typeDescriptions": {
																	"typeIdentifier": "t_rational_0_by_1",
																	"typeString": "int_const 0"
																},
																"value": "0"
															},
															"src": "9747:16:11",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														},
														{
															"id": 2549,
															"name": "_errorMessage",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 2538,
															"src": "9765:13:11",
															"typeDescriptions": {
																"typeIdentifier": "t_string_memory_ptr",
																"typeString": "string memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															},
															{
																"typeIdentifier": "t_string_memory_ptr",
																"typeString": "string memory"
															}
														],
														"id": 2545,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "9739:7:11",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
															"typeString": "function (bool,string memory) pure"
														}
													},
													"id": 2550,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "9739:40:11",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2551,
												"nodeType": "ExpressionStatement",
												"src": "9739:40:11"
											}
										]
									},
									"id": 2553,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "enforceHasContractCode",
									"nameLocation": "9504:22:11",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2539,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2536,
												"mutability": "mutable",
												"name": "_contract",
												"nameLocation": "9535:9:11",
												"nodeType": "VariableDeclaration",
												"scope": 2553,
												"src": "9527:17:11",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2535,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "9527:7:11",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 2538,
												"mutability": "mutable",
												"name": "_errorMessage",
												"nameLocation": "9560:13:11",
												"nodeType": "VariableDeclaration",
												"scope": 2553,
												"src": "9546:27:11",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 2537,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "9546:6:11",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "9526:48:11"
									},
									"returnParameters": {
										"id": 2540,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "9589:0:11"
									},
									"scope": 2554,
									"src": "9495:289:11",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								}
							],
							"scope": 2555,
							"src": "127:9659:11",
							"usedErrors": []
						}
					],
					"src": "32:9755:11"
				},
				"id": 11
			},
			"hardhat/console.sol": {
				"ast": {
					"absolutePath": "hardhat/console.sol",
					"exportedSymbols": {
						"console": [
							10618
						]
					},
					"id": 10619,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 2556,
							"literals": [
								"solidity",
								">=",
								"0.4",
								".22",
								"<",
								"0.9",
								".0"
							],
							"nodeType": "PragmaDirective",
							"src": "32:33:12"
						},
						{
							"abstract": false,
							"baseContracts": [],
							"contractDependencies": [],
							"contractKind": "library",
							"fullyImplemented": true,
							"id": 10618,
							"linearizedBaseContracts": [
								10618
							],
							"name": "console",
							"nameLocation": "75:7:12",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"constant": true,
									"id": 2562,
									"mutability": "constant",
									"name": "CONSOLE_ADDRESS",
									"nameLocation": "103:15:12",
									"nodeType": "VariableDeclaration",
									"scope": 10618,
									"src": "86:86:12",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_address",
										"typeString": "address"
									},
									"typeName": {
										"id": 2557,
										"name": "address",
										"nodeType": "ElementaryTypeName",
										"src": "86:7:12",
										"stateMutability": "nonpayable",
										"typeDescriptions": {
											"typeIdentifier": "t_address",
											"typeString": "address"
										}
									},
									"value": {
										"arguments": [
											{
												"hexValue": "307830303030303030303030303030303030303036333646366537333646366336353265366336663637",
												"id": 2560,
												"isConstant": false,
												"isLValue": false,
												"isPure": true,
												"kind": "number",
												"lValueRequested": false,
												"nodeType": "Literal",
												"src": "129:42:12",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"value": "0x000000000000000000636F6e736F6c652e6c6f67"
											}
										],
										"expression": {
											"argumentTypes": [
												{
													"typeIdentifier": "t_address",
													"typeString": "address"
												}
											],
											"id": 2559,
											"isConstant": false,
											"isLValue": false,
											"isPure": true,
											"lValueRequested": false,
											"nodeType": "ElementaryTypeNameExpression",
											"src": "121:7:12",
											"typeDescriptions": {
												"typeIdentifier": "t_type$_t_address_$",
												"typeString": "type(address)"
											},
											"typeName": {
												"id": 2558,
												"name": "address",
												"nodeType": "ElementaryTypeName",
												"src": "121:7:12",
												"typeDescriptions": {}
											}
										},
										"id": 2561,
										"isConstant": false,
										"isLValue": false,
										"isPure": true,
										"kind": "typeConversion",
										"lValueRequested": false,
										"names": [],
										"nodeType": "FunctionCall",
										"src": "121:51:12",
										"tryCall": false,
										"typeDescriptions": {
											"typeIdentifier": "t_address",
											"typeString": "address"
										}
									},
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2577,
										"nodeType": "Block",
										"src": "236:228:12",
										"statements": [
											{
												"assignments": [
													2568
												],
												"declarations": [
													{
														"constant": false,
														"id": 2568,
														"mutability": "mutable",
														"name": "payloadLength",
														"nameLocation": "248:13:12",
														"nodeType": "VariableDeclaration",
														"scope": 2577,
														"src": "240:21:12",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"typeName": {
															"id": 2567,
															"name": "uint256",
															"nodeType": "ElementaryTypeName",
															"src": "240:7:12",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 2571,
												"initialValue": {
													"expression": {
														"id": 2569,
														"name": "payload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2564,
														"src": "264:7:12",
														"typeDescriptions": {
															"typeIdentifier": "t_bytes_memory_ptr",
															"typeString": "bytes memory"
														}
													},
													"id": 2570,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"memberName": "length",
													"nodeType": "MemberAccess",
													"src": "264:14:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "240:38:12"
											},
											{
												"assignments": [
													2573
												],
												"declarations": [
													{
														"constant": false,
														"id": 2573,
														"mutability": "mutable",
														"name": "consoleAddress",
														"nameLocation": "290:14:12",
														"nodeType": "VariableDeclaration",
														"scope": 2577,
														"src": "282:22:12",
														"stateVariable": false,
														"storageLocation": "default",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														},
														"typeName": {
															"id": 2572,
															"name": "address",
															"nodeType": "ElementaryTypeName",
															"src": "282:7:12",
															"stateMutability": "nonpayable",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"visibility": "internal"
													}
												],
												"id": 2575,
												"initialValue": {
													"id": 2574,
													"name": "CONSOLE_ADDRESS",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 2562,
													"src": "307:15:12",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"nodeType": "VariableDeclarationStatement",
												"src": "282:40:12"
											},
											{
												"AST": {
													"nodeType": "YulBlock",
													"src": "335:126:12",
													"statements": [
														{
															"nodeType": "YulVariableDeclaration",
															"src": "340:36:12",
															"value": {
																"arguments": [
																	{
																		"name": "payload",
																		"nodeType": "YulIdentifier",
																		"src": "364:7:12"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "373:2:12",
																		"type": "",
																		"value": "32"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "360:3:12"
																},
																"nodeType": "YulFunctionCall",
																"src": "360:16:12"
															},
															"variables": [
																{
																	"name": "payloadStart",
																	"nodeType": "YulTypedName",
																	"src": "344:12:12",
																	"type": ""
																}
															]
														},
														{
															"nodeType": "YulVariableDeclaration",
															"src": "380:77:12",
															"value": {
																"arguments": [
																	{
																		"arguments": [],
																		"functionName": {
																			"name": "gas",
																			"nodeType": "YulIdentifier",
																			"src": "400:3:12"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "400:5:12"
																	},
																	{
																		"name": "consoleAddress",
																		"nodeType": "YulIdentifier",
																		"src": "407:14:12"
																	},
																	{
																		"name": "payloadStart",
																		"nodeType": "YulIdentifier",
																		"src": "423:12:12"
																	},
																	{
																		"name": "payloadLength",
																		"nodeType": "YulIdentifier",
																		"src": "437:13:12"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "452:1:12",
																		"type": "",
																		"value": "0"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "455:1:12",
																		"type": "",
																		"value": "0"
																	}
																],
																"functionName": {
																	"name": "staticcall",
																	"nodeType": "YulIdentifier",
																	"src": "389:10:12"
																},
																"nodeType": "YulFunctionCall",
																"src": "389:68:12"
															},
															"variables": [
																{
																	"name": "r",
																	"nodeType": "YulTypedName",
																	"src": "384:1:12",
																	"type": ""
																}
															]
														}
													]
												},
												"evmVersion": "istanbul",
												"externalReferences": [
													{
														"declaration": 2573,
														"isOffset": false,
														"isSlot": false,
														"src": "407:14:12",
														"valueSize": 1
													},
													{
														"declaration": 2564,
														"isOffset": false,
														"isSlot": false,
														"src": "364:7:12",
														"valueSize": 1
													},
													{
														"declaration": 2568,
														"isOffset": false,
														"isSlot": false,
														"src": "437:13:12",
														"valueSize": 1
													}
												],
												"id": 2576,
												"nodeType": "InlineAssembly",
												"src": "326:135:12"
											}
										]
									},
									"id": 2578,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "_sendLogPayload",
									"nameLocation": "185:15:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2565,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2564,
												"mutability": "mutable",
												"name": "payload",
												"nameLocation": "214:7:12",
												"nodeType": "VariableDeclaration",
												"scope": 2578,
												"src": "201:20:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 2563,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "201:5:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "200:22:12"
									},
									"returnParameters": {
										"id": 2566,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "236:0:12"
									},
									"scope": 10618,
									"src": "176:288:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "private"
								},
								{
									"body": {
										"id": 2588,
										"nodeType": "Block",
										"src": "496:57:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672829",
																	"id": 2584,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "540:7:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_51973ec9d4c1929bdd5b149c064d46aee47e92a7e2bb5f7a20c7b9cfb0d13b39",
																		"typeString": "literal_string \"log()\""
																	},
																	"value": "log()"
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_51973ec9d4c1929bdd5b149c064d46aee47e92a7e2bb5f7a20c7b9cfb0d13b39",
																		"typeString": "literal_string \"log()\""
																	}
																],
																"expression": {
																	"id": 2582,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "516:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 2583,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "516:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 2585,
															"isConstant": false,
															"isLValue": false,
															"isPure": true,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "516:32:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2581,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "500:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 2586,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "500:49:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2587,
												"nodeType": "ExpressionStatement",
												"src": "500:49:12"
											}
										]
									},
									"id": 2589,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "476:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2579,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "479:2:12"
									},
									"returnParameters": {
										"id": 2580,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "496:0:12"
									},
									"scope": 10618,
									"src": "467:86:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2602,
										"nodeType": "Block",
										"src": "594:64:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728696e7429",
																	"id": 2597,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "638:10:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_4e0c1d1dcf573259576e2a7e591d366143f88fb7f7e57df09852da9c36797f2e",
																		"typeString": "literal_string \"log(int)\""
																	},
																	"value": "log(int)"
																},
																{
																	"id": 2598,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2591,
																	"src": "650:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_int256",
																		"typeString": "int256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_4e0c1d1dcf573259576e2a7e591d366143f88fb7f7e57df09852da9c36797f2e",
																		"typeString": "literal_string \"log(int)\""
																	},
																	{
																		"typeIdentifier": "t_int256",
																		"typeString": "int256"
																	}
																],
																"expression": {
																	"id": 2595,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "614:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 2596,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "614:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 2599,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "614:39:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2594,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "598:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 2600,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "598:56:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2601,
												"nodeType": "ExpressionStatement",
												"src": "598:56:12"
											}
										]
									},
									"id": 2603,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logInt",
									"nameLocation": "565:6:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2592,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2591,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "576:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 2603,
												"src": "572:6:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_int256",
													"typeString": "int256"
												},
												"typeName": {
													"id": 2590,
													"name": "int",
													"nodeType": "ElementaryTypeName",
													"src": "572:3:12",
													"typeDescriptions": {
														"typeIdentifier": "t_int256",
														"typeString": "int256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "571:8:12"
									},
									"returnParameters": {
										"id": 2593,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "594:0:12"
									},
									"scope": 10618,
									"src": "556:102:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2616,
										"nodeType": "Block",
										"src": "701:65:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e7429",
																	"id": 2611,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "745:11:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_f5b1bba92d8f98cf25e27c94d7fc7cbfbae95a49dfe5ab0cdf64ddd7181bb984",
																		"typeString": "literal_string \"log(uint)\""
																	},
																	"value": "log(uint)"
																},
																{
																	"id": 2612,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2605,
																	"src": "758:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_f5b1bba92d8f98cf25e27c94d7fc7cbfbae95a49dfe5ab0cdf64ddd7181bb984",
																		"typeString": "literal_string \"log(uint)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 2609,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "721:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 2610,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "721:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 2613,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "721:40:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2608,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "705:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 2614,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "705:57:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2615,
												"nodeType": "ExpressionStatement",
												"src": "705:57:12"
											}
										]
									},
									"id": 2617,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logUint",
									"nameLocation": "670:7:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2606,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2605,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "683:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 2617,
												"src": "678:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 2604,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "678:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "677:9:12"
									},
									"returnParameters": {
										"id": 2607,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "701:0:12"
									},
									"scope": 10618,
									"src": "661:105:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2630,
										"nodeType": "Block",
										"src": "820:67:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e6729",
																	"id": 2625,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "864:13:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50",
																		"typeString": "literal_string \"log(string)\""
																	},
																	"value": "log(string)"
																},
																{
																	"id": 2626,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2619,
																	"src": "879:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50",
																		"typeString": "literal_string \"log(string)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 2623,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "840:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 2624,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "840:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 2627,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "840:42:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2622,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "824:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 2628,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "824:59:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2629,
												"nodeType": "ExpressionStatement",
												"src": "824:59:12"
											}
										]
									},
									"id": 2631,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logString",
									"nameLocation": "778:9:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2620,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2619,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "802:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 2631,
												"src": "788:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 2618,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "788:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "787:18:12"
									},
									"returnParameters": {
										"id": 2621,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "820:0:12"
									},
									"scope": 10618,
									"src": "769:118:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2644,
										"nodeType": "Block",
										"src": "930:65:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c29",
																	"id": 2639,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "974:11:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7",
																		"typeString": "literal_string \"log(bool)\""
																	},
																	"value": "log(bool)"
																},
																{
																	"id": 2640,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2633,
																	"src": "987:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7",
																		"typeString": "literal_string \"log(bool)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 2637,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "950:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 2638,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "950:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 2641,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "950:40:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2636,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "934:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 2642,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "934:57:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2643,
												"nodeType": "ExpressionStatement",
												"src": "934:57:12"
											}
										]
									},
									"id": 2645,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBool",
									"nameLocation": "899:7:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2634,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2633,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "912:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 2645,
												"src": "907:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 2632,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "907:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "906:9:12"
									},
									"returnParameters": {
										"id": 2635,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "930:0:12"
									},
									"scope": 10618,
									"src": "890:105:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2658,
										"nodeType": "Block",
										"src": "1044:68:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f67286164647265737329",
																	"id": 2653,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "1088:14:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428",
																		"typeString": "literal_string \"log(address)\""
																	},
																	"value": "log(address)"
																},
																{
																	"id": 2654,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2647,
																	"src": "1104:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428",
																		"typeString": "literal_string \"log(address)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 2651,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "1064:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 2652,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "1064:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 2655,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "1064:43:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2650,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "1048:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 2656,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "1048:60:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2657,
												"nodeType": "ExpressionStatement",
												"src": "1048:60:12"
											}
										]
									},
									"id": 2659,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logAddress",
									"nameLocation": "1007:10:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2648,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2647,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "1026:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 2659,
												"src": "1018:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 2646,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "1018:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1017:12:12"
									},
									"returnParameters": {
										"id": 2649,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1044:0:12"
									},
									"scope": 10618,
									"src": "998:114:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2672,
										"nodeType": "Block",
										"src": "1164:66:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728627974657329",
																	"id": 2667,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "1208:12:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_0be77f5642494da7d212b92a3472c4f471abb24e17467f41788e7de7915d6238",
																		"typeString": "literal_string \"log(bytes)\""
																	},
																	"value": "log(bytes)"
																},
																{
																	"id": 2668,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2661,
																	"src": "1222:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes_memory_ptr",
																		"typeString": "bytes memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_0be77f5642494da7d212b92a3472c4f471abb24e17467f41788e7de7915d6238",
																		"typeString": "literal_string \"log(bytes)\""
																	},
																	{
																		"typeIdentifier": "t_bytes_memory_ptr",
																		"typeString": "bytes memory"
																	}
																],
																"expression": {
																	"id": 2665,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "1184:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 2666,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "1184:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 2669,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "1184:41:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2664,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "1168:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 2670,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "1168:58:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2671,
												"nodeType": "ExpressionStatement",
												"src": "1168:58:12"
											}
										]
									},
									"id": 2673,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes",
									"nameLocation": "1124:8:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2662,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2661,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "1146:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 2673,
												"src": "1133:15:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes_memory_ptr",
													"typeString": "bytes"
												},
												"typeName": {
													"id": 2660,
													"name": "bytes",
													"nodeType": "ElementaryTypeName",
													"src": "1133:5:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes_storage_ptr",
														"typeString": "bytes"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1132:17:12"
									},
									"returnParameters": {
										"id": 2663,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1164:0:12"
									},
									"scope": 10618,
									"src": "1115:115:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2686,
										"nodeType": "Block",
										"src": "1277:67:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672862797465733129",
																	"id": 2681,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "1321:13:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_6e18a1285e3dfba09579e846ff83d5e4ffae1b869c8fc4323752bab794e41041",
																		"typeString": "literal_string \"log(bytes1)\""
																	},
																	"value": "log(bytes1)"
																},
																{
																	"id": 2682,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2675,
																	"src": "1336:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes1",
																		"typeString": "bytes1"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_6e18a1285e3dfba09579e846ff83d5e4ffae1b869c8fc4323752bab794e41041",
																		"typeString": "literal_string \"log(bytes1)\""
																	},
																	{
																		"typeIdentifier": "t_bytes1",
																		"typeString": "bytes1"
																	}
																],
																"expression": {
																	"id": 2679,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "1297:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 2680,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "1297:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 2683,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "1297:42:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2678,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "1281:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 2684,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "1281:59:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2685,
												"nodeType": "ExpressionStatement",
												"src": "1281:59:12"
											}
										]
									},
									"id": 2687,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes1",
									"nameLocation": "1242:9:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2676,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2675,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "1259:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 2687,
												"src": "1252:9:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes1",
													"typeString": "bytes1"
												},
												"typeName": {
													"id": 2674,
													"name": "bytes1",
													"nodeType": "ElementaryTypeName",
													"src": "1252:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes1",
														"typeString": "bytes1"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1251:11:12"
									},
									"returnParameters": {
										"id": 2677,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1277:0:12"
									},
									"scope": 10618,
									"src": "1233:111:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2700,
										"nodeType": "Block",
										"src": "1391:67:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672862797465733229",
																	"id": 2695,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "1435:13:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_e9b622960ff3a0e86d35e876bfeba445fab6c5686604aa116c47c1e106921224",
																		"typeString": "literal_string \"log(bytes2)\""
																	},
																	"value": "log(bytes2)"
																},
																{
																	"id": 2696,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2689,
																	"src": "1450:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes2",
																		"typeString": "bytes2"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_e9b622960ff3a0e86d35e876bfeba445fab6c5686604aa116c47c1e106921224",
																		"typeString": "literal_string \"log(bytes2)\""
																	},
																	{
																		"typeIdentifier": "t_bytes2",
																		"typeString": "bytes2"
																	}
																],
																"expression": {
																	"id": 2693,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "1411:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 2694,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "1411:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 2697,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "1411:42:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2692,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "1395:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 2698,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "1395:59:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2699,
												"nodeType": "ExpressionStatement",
												"src": "1395:59:12"
											}
										]
									},
									"id": 2701,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes2",
									"nameLocation": "1356:9:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2690,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2689,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "1373:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 2701,
												"src": "1366:9:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes2",
													"typeString": "bytes2"
												},
												"typeName": {
													"id": 2688,
													"name": "bytes2",
													"nodeType": "ElementaryTypeName",
													"src": "1366:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes2",
														"typeString": "bytes2"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1365:11:12"
									},
									"returnParameters": {
										"id": 2691,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1391:0:12"
									},
									"scope": 10618,
									"src": "1347:111:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2714,
										"nodeType": "Block",
										"src": "1505:67:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672862797465733329",
																	"id": 2709,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "1549:13:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_2d8349266851a1d92746f90a9696920643311d6bf462d9fa11e69718a636cbee",
																		"typeString": "literal_string \"log(bytes3)\""
																	},
																	"value": "log(bytes3)"
																},
																{
																	"id": 2710,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2703,
																	"src": "1564:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes3",
																		"typeString": "bytes3"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_2d8349266851a1d92746f90a9696920643311d6bf462d9fa11e69718a636cbee",
																		"typeString": "literal_string \"log(bytes3)\""
																	},
																	{
																		"typeIdentifier": "t_bytes3",
																		"typeString": "bytes3"
																	}
																],
																"expression": {
																	"id": 2707,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "1525:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 2708,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "1525:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 2711,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "1525:42:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2706,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "1509:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 2712,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "1509:59:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2713,
												"nodeType": "ExpressionStatement",
												"src": "1509:59:12"
											}
										]
									},
									"id": 2715,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes3",
									"nameLocation": "1470:9:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2704,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2703,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "1487:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 2715,
												"src": "1480:9:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes3",
													"typeString": "bytes3"
												},
												"typeName": {
													"id": 2702,
													"name": "bytes3",
													"nodeType": "ElementaryTypeName",
													"src": "1480:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes3",
														"typeString": "bytes3"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1479:11:12"
									},
									"returnParameters": {
										"id": 2705,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1505:0:12"
									},
									"scope": 10618,
									"src": "1461:111:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2728,
										"nodeType": "Block",
										"src": "1619:67:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672862797465733429",
																	"id": 2723,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "1663:13:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_e05f48d17f80c0f06e82dc14f4be9f0f654dde2e722a8d8796ad7e07f5308d55",
																		"typeString": "literal_string \"log(bytes4)\""
																	},
																	"value": "log(bytes4)"
																},
																{
																	"id": 2724,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2717,
																	"src": "1678:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes4",
																		"typeString": "bytes4"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_e05f48d17f80c0f06e82dc14f4be9f0f654dde2e722a8d8796ad7e07f5308d55",
																		"typeString": "literal_string \"log(bytes4)\""
																	},
																	{
																		"typeIdentifier": "t_bytes4",
																		"typeString": "bytes4"
																	}
																],
																"expression": {
																	"id": 2721,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "1639:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 2722,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "1639:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 2725,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "1639:42:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2720,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "1623:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 2726,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "1623:59:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2727,
												"nodeType": "ExpressionStatement",
												"src": "1623:59:12"
											}
										]
									},
									"id": 2729,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes4",
									"nameLocation": "1584:9:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2718,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2717,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "1601:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 2729,
												"src": "1594:9:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes4",
													"typeString": "bytes4"
												},
												"typeName": {
													"id": 2716,
													"name": "bytes4",
													"nodeType": "ElementaryTypeName",
													"src": "1594:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes4",
														"typeString": "bytes4"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1593:11:12"
									},
									"returnParameters": {
										"id": 2719,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1619:0:12"
									},
									"scope": 10618,
									"src": "1575:111:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2742,
										"nodeType": "Block",
										"src": "1733:67:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672862797465733529",
																	"id": 2737,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "1777:13:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_a684808d222f8a67c08dd13085391d5e9d1825d9fb6e2da44a91b1a07d07401a",
																		"typeString": "literal_string \"log(bytes5)\""
																	},
																	"value": "log(bytes5)"
																},
																{
																	"id": 2738,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2731,
																	"src": "1792:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes5",
																		"typeString": "bytes5"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_a684808d222f8a67c08dd13085391d5e9d1825d9fb6e2da44a91b1a07d07401a",
																		"typeString": "literal_string \"log(bytes5)\""
																	},
																	{
																		"typeIdentifier": "t_bytes5",
																		"typeString": "bytes5"
																	}
																],
																"expression": {
																	"id": 2735,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "1753:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 2736,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "1753:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 2739,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "1753:42:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2734,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "1737:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 2740,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "1737:59:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2741,
												"nodeType": "ExpressionStatement",
												"src": "1737:59:12"
											}
										]
									},
									"id": 2743,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes5",
									"nameLocation": "1698:9:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2732,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2731,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "1715:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 2743,
												"src": "1708:9:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes5",
													"typeString": "bytes5"
												},
												"typeName": {
													"id": 2730,
													"name": "bytes5",
													"nodeType": "ElementaryTypeName",
													"src": "1708:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes5",
														"typeString": "bytes5"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1707:11:12"
									},
									"returnParameters": {
										"id": 2733,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1733:0:12"
									},
									"scope": 10618,
									"src": "1689:111:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2756,
										"nodeType": "Block",
										"src": "1847:67:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672862797465733629",
																	"id": 2751,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "1891:13:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_ae84a5910824668818be6031303edf0f6f3694b35d5e6f9683950d57ef12d330",
																		"typeString": "literal_string \"log(bytes6)\""
																	},
																	"value": "log(bytes6)"
																},
																{
																	"id": 2752,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2745,
																	"src": "1906:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes6",
																		"typeString": "bytes6"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_ae84a5910824668818be6031303edf0f6f3694b35d5e6f9683950d57ef12d330",
																		"typeString": "literal_string \"log(bytes6)\""
																	},
																	{
																		"typeIdentifier": "t_bytes6",
																		"typeString": "bytes6"
																	}
																],
																"expression": {
																	"id": 2749,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "1867:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 2750,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "1867:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 2753,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "1867:42:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2748,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "1851:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 2754,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "1851:59:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2755,
												"nodeType": "ExpressionStatement",
												"src": "1851:59:12"
											}
										]
									},
									"id": 2757,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes6",
									"nameLocation": "1812:9:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2746,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2745,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "1829:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 2757,
												"src": "1822:9:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes6",
													"typeString": "bytes6"
												},
												"typeName": {
													"id": 2744,
													"name": "bytes6",
													"nodeType": "ElementaryTypeName",
													"src": "1822:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes6",
														"typeString": "bytes6"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1821:11:12"
									},
									"returnParameters": {
										"id": 2747,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1847:0:12"
									},
									"scope": 10618,
									"src": "1803:111:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2770,
										"nodeType": "Block",
										"src": "1961:67:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672862797465733729",
																	"id": 2765,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "2005:13:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_4ed57e28813457436949e4ec0a834b3c8262cd6cebd21953ee0da3400ce2de29",
																		"typeString": "literal_string \"log(bytes7)\""
																	},
																	"value": "log(bytes7)"
																},
																{
																	"id": 2766,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2759,
																	"src": "2020:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes7",
																		"typeString": "bytes7"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_4ed57e28813457436949e4ec0a834b3c8262cd6cebd21953ee0da3400ce2de29",
																		"typeString": "literal_string \"log(bytes7)\""
																	},
																	{
																		"typeIdentifier": "t_bytes7",
																		"typeString": "bytes7"
																	}
																],
																"expression": {
																	"id": 2763,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "1981:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 2764,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "1981:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 2767,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "1981:42:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2762,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "1965:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 2768,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "1965:59:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2769,
												"nodeType": "ExpressionStatement",
												"src": "1965:59:12"
											}
										]
									},
									"id": 2771,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes7",
									"nameLocation": "1926:9:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2760,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2759,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "1943:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 2771,
												"src": "1936:9:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes7",
													"typeString": "bytes7"
												},
												"typeName": {
													"id": 2758,
													"name": "bytes7",
													"nodeType": "ElementaryTypeName",
													"src": "1936:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes7",
														"typeString": "bytes7"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "1935:11:12"
									},
									"returnParameters": {
										"id": 2761,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "1961:0:12"
									},
									"scope": 10618,
									"src": "1917:111:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2784,
										"nodeType": "Block",
										"src": "2075:67:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672862797465733829",
																	"id": 2779,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "2119:13:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_4f84252e5b28e1a0064346c7cd13650e2dd6020728ca468281bb2a28b42654b3",
																		"typeString": "literal_string \"log(bytes8)\""
																	},
																	"value": "log(bytes8)"
																},
																{
																	"id": 2780,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2773,
																	"src": "2134:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes8",
																		"typeString": "bytes8"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_4f84252e5b28e1a0064346c7cd13650e2dd6020728ca468281bb2a28b42654b3",
																		"typeString": "literal_string \"log(bytes8)\""
																	},
																	{
																		"typeIdentifier": "t_bytes8",
																		"typeString": "bytes8"
																	}
																],
																"expression": {
																	"id": 2777,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "2095:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 2778,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "2095:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 2781,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "2095:42:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2776,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "2079:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 2782,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "2079:59:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2783,
												"nodeType": "ExpressionStatement",
												"src": "2079:59:12"
											}
										]
									},
									"id": 2785,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes8",
									"nameLocation": "2040:9:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2774,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2773,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "2057:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 2785,
												"src": "2050:9:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes8",
													"typeString": "bytes8"
												},
												"typeName": {
													"id": 2772,
													"name": "bytes8",
													"nodeType": "ElementaryTypeName",
													"src": "2050:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes8",
														"typeString": "bytes8"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2049:11:12"
									},
									"returnParameters": {
										"id": 2775,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2075:0:12"
									},
									"scope": 10618,
									"src": "2031:111:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2798,
										"nodeType": "Block",
										"src": "2189:67:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672862797465733929",
																	"id": 2793,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "2233:13:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_90bd8cd0463fe91d31e59db57ee4cf8d778374c422b4b50e841266d9c2cc6667",
																		"typeString": "literal_string \"log(bytes9)\""
																	},
																	"value": "log(bytes9)"
																},
																{
																	"id": 2794,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2787,
																	"src": "2248:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes9",
																		"typeString": "bytes9"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_90bd8cd0463fe91d31e59db57ee4cf8d778374c422b4b50e841266d9c2cc6667",
																		"typeString": "literal_string \"log(bytes9)\""
																	},
																	{
																		"typeIdentifier": "t_bytes9",
																		"typeString": "bytes9"
																	}
																],
																"expression": {
																	"id": 2791,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "2209:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 2792,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "2209:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 2795,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "2209:42:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2790,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "2193:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 2796,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "2193:59:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2797,
												"nodeType": "ExpressionStatement",
												"src": "2193:59:12"
											}
										]
									},
									"id": 2799,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes9",
									"nameLocation": "2154:9:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2788,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2787,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "2171:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 2799,
												"src": "2164:9:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes9",
													"typeString": "bytes9"
												},
												"typeName": {
													"id": 2786,
													"name": "bytes9",
													"nodeType": "ElementaryTypeName",
													"src": "2164:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes9",
														"typeString": "bytes9"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2163:11:12"
									},
									"returnParameters": {
										"id": 2789,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2189:0:12"
									},
									"scope": 10618,
									"src": "2145:111:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2812,
										"nodeType": "Block",
										"src": "2305:68:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f67286279746573313029",
																	"id": 2807,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "2349:14:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_013d178bb749cf32d0f7243763667360eb91576261efe5ed9be72b4a2800fd66",
																		"typeString": "literal_string \"log(bytes10)\""
																	},
																	"value": "log(bytes10)"
																},
																{
																	"id": 2808,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2801,
																	"src": "2365:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes10",
																		"typeString": "bytes10"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_013d178bb749cf32d0f7243763667360eb91576261efe5ed9be72b4a2800fd66",
																		"typeString": "literal_string \"log(bytes10)\""
																	},
																	{
																		"typeIdentifier": "t_bytes10",
																		"typeString": "bytes10"
																	}
																],
																"expression": {
																	"id": 2805,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "2325:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 2806,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "2325:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 2809,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "2325:43:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2804,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "2309:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 2810,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "2309:60:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2811,
												"nodeType": "ExpressionStatement",
												"src": "2309:60:12"
											}
										]
									},
									"id": 2813,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes10",
									"nameLocation": "2268:10:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2802,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2801,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "2287:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 2813,
												"src": "2279:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes10",
													"typeString": "bytes10"
												},
												"typeName": {
													"id": 2800,
													"name": "bytes10",
													"nodeType": "ElementaryTypeName",
													"src": "2279:7:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes10",
														"typeString": "bytes10"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2278:12:12"
									},
									"returnParameters": {
										"id": 2803,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2305:0:12"
									},
									"scope": 10618,
									"src": "2259:114:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2826,
										"nodeType": "Block",
										"src": "2422:68:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f67286279746573313129",
																	"id": 2821,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "2466:14:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_04004a2e5bef8ca2e7ffd661b519aec3d9c1b8d0aa1e11656aab73b2726922d9",
																		"typeString": "literal_string \"log(bytes11)\""
																	},
																	"value": "log(bytes11)"
																},
																{
																	"id": 2822,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2815,
																	"src": "2482:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes11",
																		"typeString": "bytes11"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_04004a2e5bef8ca2e7ffd661b519aec3d9c1b8d0aa1e11656aab73b2726922d9",
																		"typeString": "literal_string \"log(bytes11)\""
																	},
																	{
																		"typeIdentifier": "t_bytes11",
																		"typeString": "bytes11"
																	}
																],
																"expression": {
																	"id": 2819,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "2442:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 2820,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "2442:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 2823,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "2442:43:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2818,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "2426:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 2824,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "2426:60:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2825,
												"nodeType": "ExpressionStatement",
												"src": "2426:60:12"
											}
										]
									},
									"id": 2827,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes11",
									"nameLocation": "2385:10:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2816,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2815,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "2404:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 2827,
												"src": "2396:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes11",
													"typeString": "bytes11"
												},
												"typeName": {
													"id": 2814,
													"name": "bytes11",
													"nodeType": "ElementaryTypeName",
													"src": "2396:7:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes11",
														"typeString": "bytes11"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2395:12:12"
									},
									"returnParameters": {
										"id": 2817,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2422:0:12"
									},
									"scope": 10618,
									"src": "2376:114:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2840,
										"nodeType": "Block",
										"src": "2539:68:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f67286279746573313229",
																	"id": 2835,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "2583:14:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_86a06abd704b9e5bab2216d456863046355f2def5304d8276c140d0d454fddf2",
																		"typeString": "literal_string \"log(bytes12)\""
																	},
																	"value": "log(bytes12)"
																},
																{
																	"id": 2836,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2829,
																	"src": "2599:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes12",
																		"typeString": "bytes12"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_86a06abd704b9e5bab2216d456863046355f2def5304d8276c140d0d454fddf2",
																		"typeString": "literal_string \"log(bytes12)\""
																	},
																	{
																		"typeIdentifier": "t_bytes12",
																		"typeString": "bytes12"
																	}
																],
																"expression": {
																	"id": 2833,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "2559:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 2834,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "2559:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 2837,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "2559:43:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2832,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "2543:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 2838,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "2543:60:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2839,
												"nodeType": "ExpressionStatement",
												"src": "2543:60:12"
											}
										]
									},
									"id": 2841,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes12",
									"nameLocation": "2502:10:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2830,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2829,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "2521:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 2841,
												"src": "2513:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes12",
													"typeString": "bytes12"
												},
												"typeName": {
													"id": 2828,
													"name": "bytes12",
													"nodeType": "ElementaryTypeName",
													"src": "2513:7:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes12",
														"typeString": "bytes12"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2512:12:12"
									},
									"returnParameters": {
										"id": 2831,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2539:0:12"
									},
									"scope": 10618,
									"src": "2493:114:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2854,
										"nodeType": "Block",
										"src": "2656:68:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f67286279746573313329",
																	"id": 2849,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "2700:14:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_94529e34a43ac6de2c3a0df402eee6114eb0f2ad065baefde0230cd3cf90e2ec",
																		"typeString": "literal_string \"log(bytes13)\""
																	},
																	"value": "log(bytes13)"
																},
																{
																	"id": 2850,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2843,
																	"src": "2716:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes13",
																		"typeString": "bytes13"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_94529e34a43ac6de2c3a0df402eee6114eb0f2ad065baefde0230cd3cf90e2ec",
																		"typeString": "literal_string \"log(bytes13)\""
																	},
																	{
																		"typeIdentifier": "t_bytes13",
																		"typeString": "bytes13"
																	}
																],
																"expression": {
																	"id": 2847,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "2676:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 2848,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "2676:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 2851,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "2676:43:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2846,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "2660:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 2852,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "2660:60:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2853,
												"nodeType": "ExpressionStatement",
												"src": "2660:60:12"
											}
										]
									},
									"id": 2855,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes13",
									"nameLocation": "2619:10:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2844,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2843,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "2638:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 2855,
												"src": "2630:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes13",
													"typeString": "bytes13"
												},
												"typeName": {
													"id": 2842,
													"name": "bytes13",
													"nodeType": "ElementaryTypeName",
													"src": "2630:7:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes13",
														"typeString": "bytes13"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2629:12:12"
									},
									"returnParameters": {
										"id": 2845,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2656:0:12"
									},
									"scope": 10618,
									"src": "2610:114:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2868,
										"nodeType": "Block",
										"src": "2773:68:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f67286279746573313429",
																	"id": 2863,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "2817:14:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_9266f07faf32c88bbdb01ce418243acbc1c63e15d6e3afa16078186ba711f278",
																		"typeString": "literal_string \"log(bytes14)\""
																	},
																	"value": "log(bytes14)"
																},
																{
																	"id": 2864,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2857,
																	"src": "2833:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes14",
																		"typeString": "bytes14"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_9266f07faf32c88bbdb01ce418243acbc1c63e15d6e3afa16078186ba711f278",
																		"typeString": "literal_string \"log(bytes14)\""
																	},
																	{
																		"typeIdentifier": "t_bytes14",
																		"typeString": "bytes14"
																	}
																],
																"expression": {
																	"id": 2861,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "2793:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 2862,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "2793:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 2865,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "2793:43:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2860,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "2777:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 2866,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "2777:60:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2867,
												"nodeType": "ExpressionStatement",
												"src": "2777:60:12"
											}
										]
									},
									"id": 2869,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes14",
									"nameLocation": "2736:10:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2858,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2857,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "2755:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 2869,
												"src": "2747:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes14",
													"typeString": "bytes14"
												},
												"typeName": {
													"id": 2856,
													"name": "bytes14",
													"nodeType": "ElementaryTypeName",
													"src": "2747:7:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes14",
														"typeString": "bytes14"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2746:12:12"
									},
									"returnParameters": {
										"id": 2859,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2773:0:12"
									},
									"scope": 10618,
									"src": "2727:114:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2882,
										"nodeType": "Block",
										"src": "2890:68:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f67286279746573313529",
																	"id": 2877,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "2934:14:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_da9574e0bf3f23e09c3d85c9f5226065bb36281f2a5d78c7e38f6ffd58919606",
																		"typeString": "literal_string \"log(bytes15)\""
																	},
																	"value": "log(bytes15)"
																},
																{
																	"id": 2878,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2871,
																	"src": "2950:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes15",
																		"typeString": "bytes15"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_da9574e0bf3f23e09c3d85c9f5226065bb36281f2a5d78c7e38f6ffd58919606",
																		"typeString": "literal_string \"log(bytes15)\""
																	},
																	{
																		"typeIdentifier": "t_bytes15",
																		"typeString": "bytes15"
																	}
																],
																"expression": {
																	"id": 2875,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "2910:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 2876,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "2910:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 2879,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "2910:43:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2874,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "2894:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 2880,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "2894:60:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2881,
												"nodeType": "ExpressionStatement",
												"src": "2894:60:12"
											}
										]
									},
									"id": 2883,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes15",
									"nameLocation": "2853:10:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2872,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2871,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "2872:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 2883,
												"src": "2864:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes15",
													"typeString": "bytes15"
												},
												"typeName": {
													"id": 2870,
													"name": "bytes15",
													"nodeType": "ElementaryTypeName",
													"src": "2864:7:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes15",
														"typeString": "bytes15"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2863:12:12"
									},
									"returnParameters": {
										"id": 2873,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "2890:0:12"
									},
									"scope": 10618,
									"src": "2844:114:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2896,
										"nodeType": "Block",
										"src": "3007:68:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f67286279746573313629",
																	"id": 2891,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "3051:14:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_665c61046af0adc4969f9d2f111b654775bd58f112b63e5ce7dfff29c000e9f3",
																		"typeString": "literal_string \"log(bytes16)\""
																	},
																	"value": "log(bytes16)"
																},
																{
																	"id": 2892,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2885,
																	"src": "3067:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes16",
																		"typeString": "bytes16"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_665c61046af0adc4969f9d2f111b654775bd58f112b63e5ce7dfff29c000e9f3",
																		"typeString": "literal_string \"log(bytes16)\""
																	},
																	{
																		"typeIdentifier": "t_bytes16",
																		"typeString": "bytes16"
																	}
																],
																"expression": {
																	"id": 2889,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "3027:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 2890,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "3027:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 2893,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "3027:43:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2888,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "3011:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 2894,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3011:60:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2895,
												"nodeType": "ExpressionStatement",
												"src": "3011:60:12"
											}
										]
									},
									"id": 2897,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes16",
									"nameLocation": "2970:10:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2886,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2885,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "2989:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 2897,
												"src": "2981:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes16",
													"typeString": "bytes16"
												},
												"typeName": {
													"id": 2884,
													"name": "bytes16",
													"nodeType": "ElementaryTypeName",
													"src": "2981:7:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes16",
														"typeString": "bytes16"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "2980:12:12"
									},
									"returnParameters": {
										"id": 2887,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "3007:0:12"
									},
									"scope": 10618,
									"src": "2961:114:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2910,
										"nodeType": "Block",
										"src": "3124:68:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f67286279746573313729",
																	"id": 2905,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "3168:14:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_339f673a0c008974259a0022c9b150cc5d1af8c58584412fe373d84bd08d4ea3",
																		"typeString": "literal_string \"log(bytes17)\""
																	},
																	"value": "log(bytes17)"
																},
																{
																	"id": 2906,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2899,
																	"src": "3184:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes17",
																		"typeString": "bytes17"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_339f673a0c008974259a0022c9b150cc5d1af8c58584412fe373d84bd08d4ea3",
																		"typeString": "literal_string \"log(bytes17)\""
																	},
																	{
																		"typeIdentifier": "t_bytes17",
																		"typeString": "bytes17"
																	}
																],
																"expression": {
																	"id": 2903,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "3144:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 2904,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "3144:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 2907,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "3144:43:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2902,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "3128:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 2908,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3128:60:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2909,
												"nodeType": "ExpressionStatement",
												"src": "3128:60:12"
											}
										]
									},
									"id": 2911,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes17",
									"nameLocation": "3087:10:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2900,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2899,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "3106:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 2911,
												"src": "3098:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes17",
													"typeString": "bytes17"
												},
												"typeName": {
													"id": 2898,
													"name": "bytes17",
													"nodeType": "ElementaryTypeName",
													"src": "3098:7:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes17",
														"typeString": "bytes17"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3097:12:12"
									},
									"returnParameters": {
										"id": 2901,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "3124:0:12"
									},
									"scope": 10618,
									"src": "3078:114:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2924,
										"nodeType": "Block",
										"src": "3241:68:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f67286279746573313829",
																	"id": 2919,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "3285:14:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_c4d23d9af6458d5ddc7cb8128a2f36bf147c9db4fe277dfe0fe7be41def62116",
																		"typeString": "literal_string \"log(bytes18)\""
																	},
																	"value": "log(bytes18)"
																},
																{
																	"id": 2920,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2913,
																	"src": "3301:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes18",
																		"typeString": "bytes18"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_c4d23d9af6458d5ddc7cb8128a2f36bf147c9db4fe277dfe0fe7be41def62116",
																		"typeString": "literal_string \"log(bytes18)\""
																	},
																	{
																		"typeIdentifier": "t_bytes18",
																		"typeString": "bytes18"
																	}
																],
																"expression": {
																	"id": 2917,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "3261:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 2918,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "3261:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 2921,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "3261:43:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2916,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "3245:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 2922,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3245:60:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2923,
												"nodeType": "ExpressionStatement",
												"src": "3245:60:12"
											}
										]
									},
									"id": 2925,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes18",
									"nameLocation": "3204:10:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2914,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2913,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "3223:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 2925,
												"src": "3215:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes18",
													"typeString": "bytes18"
												},
												"typeName": {
													"id": 2912,
													"name": "bytes18",
													"nodeType": "ElementaryTypeName",
													"src": "3215:7:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes18",
														"typeString": "bytes18"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3214:12:12"
									},
									"returnParameters": {
										"id": 2915,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "3241:0:12"
									},
									"scope": 10618,
									"src": "3195:114:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2938,
										"nodeType": "Block",
										"src": "3358:68:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f67286279746573313929",
																	"id": 2933,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "3402:14:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_5e6b5a33524ca650028e2fad735b4ab50285bba37658119d2da303bee98aeada",
																		"typeString": "literal_string \"log(bytes19)\""
																	},
																	"value": "log(bytes19)"
																},
																{
																	"id": 2934,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2927,
																	"src": "3418:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes19",
																		"typeString": "bytes19"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_5e6b5a33524ca650028e2fad735b4ab50285bba37658119d2da303bee98aeada",
																		"typeString": "literal_string \"log(bytes19)\""
																	},
																	{
																		"typeIdentifier": "t_bytes19",
																		"typeString": "bytes19"
																	}
																],
																"expression": {
																	"id": 2931,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "3378:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 2932,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "3378:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 2935,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "3378:43:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2930,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "3362:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 2936,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3362:60:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2937,
												"nodeType": "ExpressionStatement",
												"src": "3362:60:12"
											}
										]
									},
									"id": 2939,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes19",
									"nameLocation": "3321:10:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2928,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2927,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "3340:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 2939,
												"src": "3332:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes19",
													"typeString": "bytes19"
												},
												"typeName": {
													"id": 2926,
													"name": "bytes19",
													"nodeType": "ElementaryTypeName",
													"src": "3332:7:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes19",
														"typeString": "bytes19"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3331:12:12"
									},
									"returnParameters": {
										"id": 2929,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "3358:0:12"
									},
									"scope": 10618,
									"src": "3312:114:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2952,
										"nodeType": "Block",
										"src": "3475:68:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f67286279746573323029",
																	"id": 2947,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "3519:14:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_5188e3e9b3f117a223e2e428d0e13d089f3a53913e479000b94b85266ecf8231",
																		"typeString": "literal_string \"log(bytes20)\""
																	},
																	"value": "log(bytes20)"
																},
																{
																	"id": 2948,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2941,
																	"src": "3535:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes20",
																		"typeString": "bytes20"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_5188e3e9b3f117a223e2e428d0e13d089f3a53913e479000b94b85266ecf8231",
																		"typeString": "literal_string \"log(bytes20)\""
																	},
																	{
																		"typeIdentifier": "t_bytes20",
																		"typeString": "bytes20"
																	}
																],
																"expression": {
																	"id": 2945,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "3495:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 2946,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "3495:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 2949,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "3495:43:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2944,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "3479:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 2950,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3479:60:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2951,
												"nodeType": "ExpressionStatement",
												"src": "3479:60:12"
											}
										]
									},
									"id": 2953,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes20",
									"nameLocation": "3438:10:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2942,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2941,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "3457:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 2953,
												"src": "3449:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes20",
													"typeString": "bytes20"
												},
												"typeName": {
													"id": 2940,
													"name": "bytes20",
													"nodeType": "ElementaryTypeName",
													"src": "3449:7:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes20",
														"typeString": "bytes20"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3448:12:12"
									},
									"returnParameters": {
										"id": 2943,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "3475:0:12"
									},
									"scope": 10618,
									"src": "3429:114:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2966,
										"nodeType": "Block",
										"src": "3592:68:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f67286279746573323129",
																	"id": 2961,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "3636:14:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_e9da35608192a6b38ad5ef62cf738886973b011b8cdb7e81cdd51b4c3dfe8ad7",
																		"typeString": "literal_string \"log(bytes21)\""
																	},
																	"value": "log(bytes21)"
																},
																{
																	"id": 2962,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2955,
																	"src": "3652:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes21",
																		"typeString": "bytes21"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_e9da35608192a6b38ad5ef62cf738886973b011b8cdb7e81cdd51b4c3dfe8ad7",
																		"typeString": "literal_string \"log(bytes21)\""
																	},
																	{
																		"typeIdentifier": "t_bytes21",
																		"typeString": "bytes21"
																	}
																],
																"expression": {
																	"id": 2959,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "3612:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 2960,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "3612:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 2963,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "3612:43:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2958,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "3596:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 2964,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3596:60:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2965,
												"nodeType": "ExpressionStatement",
												"src": "3596:60:12"
											}
										]
									},
									"id": 2967,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes21",
									"nameLocation": "3555:10:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2956,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2955,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "3574:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 2967,
												"src": "3566:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes21",
													"typeString": "bytes21"
												},
												"typeName": {
													"id": 2954,
													"name": "bytes21",
													"nodeType": "ElementaryTypeName",
													"src": "3566:7:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes21",
														"typeString": "bytes21"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3565:12:12"
									},
									"returnParameters": {
										"id": 2957,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "3592:0:12"
									},
									"scope": 10618,
									"src": "3546:114:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2980,
										"nodeType": "Block",
										"src": "3709:68:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f67286279746573323229",
																	"id": 2975,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "3753:14:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_d5fae89c25bed6f12b105f52db0a0ff6f5c8313613e12eccd3059bb7f7ea6575",
																		"typeString": "literal_string \"log(bytes22)\""
																	},
																	"value": "log(bytes22)"
																},
																{
																	"id": 2976,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2969,
																	"src": "3769:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes22",
																		"typeString": "bytes22"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_d5fae89c25bed6f12b105f52db0a0ff6f5c8313613e12eccd3059bb7f7ea6575",
																		"typeString": "literal_string \"log(bytes22)\""
																	},
																	{
																		"typeIdentifier": "t_bytes22",
																		"typeString": "bytes22"
																	}
																],
																"expression": {
																	"id": 2973,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "3729:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 2974,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "3729:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 2977,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "3729:43:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2972,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "3713:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 2978,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3713:60:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2979,
												"nodeType": "ExpressionStatement",
												"src": "3713:60:12"
											}
										]
									},
									"id": 2981,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes22",
									"nameLocation": "3672:10:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2970,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2969,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "3691:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 2981,
												"src": "3683:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes22",
													"typeString": "bytes22"
												},
												"typeName": {
													"id": 2968,
													"name": "bytes22",
													"nodeType": "ElementaryTypeName",
													"src": "3683:7:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes22",
														"typeString": "bytes22"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3682:12:12"
									},
									"returnParameters": {
										"id": 2971,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "3709:0:12"
									},
									"scope": 10618,
									"src": "3663:114:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 2994,
										"nodeType": "Block",
										"src": "3826:68:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f67286279746573323329",
																	"id": 2989,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "3870:14:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_aba1cf0dcd316c862bc06d4cf532375fed11c1e0897ba81a04ee0b22d3f14061",
																		"typeString": "literal_string \"log(bytes23)\""
																	},
																	"value": "log(bytes23)"
																},
																{
																	"id": 2990,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2983,
																	"src": "3886:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes23",
																		"typeString": "bytes23"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_aba1cf0dcd316c862bc06d4cf532375fed11c1e0897ba81a04ee0b22d3f14061",
																		"typeString": "literal_string \"log(bytes23)\""
																	},
																	{
																		"typeIdentifier": "t_bytes23",
																		"typeString": "bytes23"
																	}
																],
																"expression": {
																	"id": 2987,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "3846:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 2988,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "3846:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 2991,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "3846:43:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 2986,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "3830:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 2992,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3830:60:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 2993,
												"nodeType": "ExpressionStatement",
												"src": "3830:60:12"
											}
										]
									},
									"id": 2995,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes23",
									"nameLocation": "3789:10:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2984,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2983,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "3808:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 2995,
												"src": "3800:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes23",
													"typeString": "bytes23"
												},
												"typeName": {
													"id": 2982,
													"name": "bytes23",
													"nodeType": "ElementaryTypeName",
													"src": "3800:7:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes23",
														"typeString": "bytes23"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3799:12:12"
									},
									"returnParameters": {
										"id": 2985,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "3826:0:12"
									},
									"scope": 10618,
									"src": "3780:114:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3008,
										"nodeType": "Block",
										"src": "3943:68:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f67286279746573323429",
																	"id": 3003,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "3987:14:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_f1b35b3488a5452bceb48624d6ba2a791e58f0e9c0f4b86b8f51186ec7a7edf4",
																		"typeString": "literal_string \"log(bytes24)\""
																	},
																	"value": "log(bytes24)"
																},
																{
																	"id": 3004,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 2997,
																	"src": "4003:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes24",
																		"typeString": "bytes24"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_f1b35b3488a5452bceb48624d6ba2a791e58f0e9c0f4b86b8f51186ec7a7edf4",
																		"typeString": "literal_string \"log(bytes24)\""
																	},
																	{
																		"typeIdentifier": "t_bytes24",
																		"typeString": "bytes24"
																	}
																],
																"expression": {
																	"id": 3001,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "3963:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3002,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "3963:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3005,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "3963:43:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3000,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "3947:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3006,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "3947:60:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3007,
												"nodeType": "ExpressionStatement",
												"src": "3947:60:12"
											}
										]
									},
									"id": 3009,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes24",
									"nameLocation": "3906:10:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 2998,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 2997,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "3925:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3009,
												"src": "3917:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes24",
													"typeString": "bytes24"
												},
												"typeName": {
													"id": 2996,
													"name": "bytes24",
													"nodeType": "ElementaryTypeName",
													"src": "3917:7:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes24",
														"typeString": "bytes24"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "3916:12:12"
									},
									"returnParameters": {
										"id": 2999,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "3943:0:12"
									},
									"scope": 10618,
									"src": "3897:114:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3022,
										"nodeType": "Block",
										"src": "4060:68:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f67286279746573323529",
																	"id": 3017,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "4104:14:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_0b84bc580db9be1295ee23dff6122da1f70381c83abf9a74953cca11238eda25",
																		"typeString": "literal_string \"log(bytes25)\""
																	},
																	"value": "log(bytes25)"
																},
																{
																	"id": 3018,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3011,
																	"src": "4120:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes25",
																		"typeString": "bytes25"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_0b84bc580db9be1295ee23dff6122da1f70381c83abf9a74953cca11238eda25",
																		"typeString": "literal_string \"log(bytes25)\""
																	},
																	{
																		"typeIdentifier": "t_bytes25",
																		"typeString": "bytes25"
																	}
																],
																"expression": {
																	"id": 3015,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "4080:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3016,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "4080:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3019,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "4080:43:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3014,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "4064:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3020,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4064:60:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3021,
												"nodeType": "ExpressionStatement",
												"src": "4064:60:12"
											}
										]
									},
									"id": 3023,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes25",
									"nameLocation": "4023:10:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3012,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3011,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "4042:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3023,
												"src": "4034:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes25",
													"typeString": "bytes25"
												},
												"typeName": {
													"id": 3010,
													"name": "bytes25",
													"nodeType": "ElementaryTypeName",
													"src": "4034:7:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes25",
														"typeString": "bytes25"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4033:12:12"
									},
									"returnParameters": {
										"id": 3013,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "4060:0:12"
									},
									"scope": 10618,
									"src": "4014:114:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3036,
										"nodeType": "Block",
										"src": "4177:68:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f67286279746573323629",
																	"id": 3031,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "4221:14:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_f8b149f18dc341f1a56e26c6c24a5233eec3bbb2ab017e9e86e663aae743965b",
																		"typeString": "literal_string \"log(bytes26)\""
																	},
																	"value": "log(bytes26)"
																},
																{
																	"id": 3032,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3025,
																	"src": "4237:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes26",
																		"typeString": "bytes26"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_f8b149f18dc341f1a56e26c6c24a5233eec3bbb2ab017e9e86e663aae743965b",
																		"typeString": "literal_string \"log(bytes26)\""
																	},
																	{
																		"typeIdentifier": "t_bytes26",
																		"typeString": "bytes26"
																	}
																],
																"expression": {
																	"id": 3029,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "4197:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3030,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "4197:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3033,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "4197:43:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3028,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "4181:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3034,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4181:60:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3035,
												"nodeType": "ExpressionStatement",
												"src": "4181:60:12"
											}
										]
									},
									"id": 3037,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes26",
									"nameLocation": "4140:10:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3026,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3025,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "4159:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3037,
												"src": "4151:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes26",
													"typeString": "bytes26"
												},
												"typeName": {
													"id": 3024,
													"name": "bytes26",
													"nodeType": "ElementaryTypeName",
													"src": "4151:7:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes26",
														"typeString": "bytes26"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4150:12:12"
									},
									"returnParameters": {
										"id": 3027,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "4177:0:12"
									},
									"scope": 10618,
									"src": "4131:114:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3050,
										"nodeType": "Block",
										"src": "4294:68:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f67286279746573323729",
																	"id": 3045,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "4338:14:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_3a3757dda92e8e238aa23ff7f6f62e31074f6acccca8986ec1286b5a835236b6",
																		"typeString": "literal_string \"log(bytes27)\""
																	},
																	"value": "log(bytes27)"
																},
																{
																	"id": 3046,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3039,
																	"src": "4354:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes27",
																		"typeString": "bytes27"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_3a3757dda92e8e238aa23ff7f6f62e31074f6acccca8986ec1286b5a835236b6",
																		"typeString": "literal_string \"log(bytes27)\""
																	},
																	{
																		"typeIdentifier": "t_bytes27",
																		"typeString": "bytes27"
																	}
																],
																"expression": {
																	"id": 3043,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "4314:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3044,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "4314:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3047,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "4314:43:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3042,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "4298:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3048,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4298:60:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3049,
												"nodeType": "ExpressionStatement",
												"src": "4298:60:12"
											}
										]
									},
									"id": 3051,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes27",
									"nameLocation": "4257:10:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3040,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3039,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "4276:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3051,
												"src": "4268:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes27",
													"typeString": "bytes27"
												},
												"typeName": {
													"id": 3038,
													"name": "bytes27",
													"nodeType": "ElementaryTypeName",
													"src": "4268:7:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes27",
														"typeString": "bytes27"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4267:12:12"
									},
									"returnParameters": {
										"id": 3041,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "4294:0:12"
									},
									"scope": 10618,
									"src": "4248:114:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3064,
										"nodeType": "Block",
										"src": "4411:68:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f67286279746573323829",
																	"id": 3059,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "4455:14:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_c82aeaee74a6ddec4ccd5cfe60e816752c02c70838f0908bd4a6e82866b3a042",
																		"typeString": "literal_string \"log(bytes28)\""
																	},
																	"value": "log(bytes28)"
																},
																{
																	"id": 3060,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3053,
																	"src": "4471:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes28",
																		"typeString": "bytes28"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_c82aeaee74a6ddec4ccd5cfe60e816752c02c70838f0908bd4a6e82866b3a042",
																		"typeString": "literal_string \"log(bytes28)\""
																	},
																	{
																		"typeIdentifier": "t_bytes28",
																		"typeString": "bytes28"
																	}
																],
																"expression": {
																	"id": 3057,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "4431:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3058,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "4431:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3061,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "4431:43:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3056,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "4415:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3062,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4415:60:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3063,
												"nodeType": "ExpressionStatement",
												"src": "4415:60:12"
											}
										]
									},
									"id": 3065,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes28",
									"nameLocation": "4374:10:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3054,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3053,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "4393:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3065,
												"src": "4385:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes28",
													"typeString": "bytes28"
												},
												"typeName": {
													"id": 3052,
													"name": "bytes28",
													"nodeType": "ElementaryTypeName",
													"src": "4385:7:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes28",
														"typeString": "bytes28"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4384:12:12"
									},
									"returnParameters": {
										"id": 3055,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "4411:0:12"
									},
									"scope": 10618,
									"src": "4365:114:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3078,
										"nodeType": "Block",
										"src": "4528:68:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f67286279746573323929",
																	"id": 3073,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "4572:14:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_4b69c3d5f782ef1bdb62d5bb42d4987f16799030ba447bb153d465bd3a3a5667",
																		"typeString": "literal_string \"log(bytes29)\""
																	},
																	"value": "log(bytes29)"
																},
																{
																	"id": 3074,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3067,
																	"src": "4588:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes29",
																		"typeString": "bytes29"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_4b69c3d5f782ef1bdb62d5bb42d4987f16799030ba447bb153d465bd3a3a5667",
																		"typeString": "literal_string \"log(bytes29)\""
																	},
																	{
																		"typeIdentifier": "t_bytes29",
																		"typeString": "bytes29"
																	}
																],
																"expression": {
																	"id": 3071,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "4548:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3072,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "4548:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3075,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "4548:43:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3070,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "4532:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3076,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4532:60:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3077,
												"nodeType": "ExpressionStatement",
												"src": "4532:60:12"
											}
										]
									},
									"id": 3079,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes29",
									"nameLocation": "4491:10:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3068,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3067,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "4510:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3079,
												"src": "4502:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes29",
													"typeString": "bytes29"
												},
												"typeName": {
													"id": 3066,
													"name": "bytes29",
													"nodeType": "ElementaryTypeName",
													"src": "4502:7:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes29",
														"typeString": "bytes29"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4501:12:12"
									},
									"returnParameters": {
										"id": 3069,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "4528:0:12"
									},
									"scope": 10618,
									"src": "4482:114:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3092,
										"nodeType": "Block",
										"src": "4645:68:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f67286279746573333029",
																	"id": 3087,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "4689:14:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_ee12c4edbd73d98174a6bf3454562c4874f59cb381176b662ca65f625f97d6ad",
																		"typeString": "literal_string \"log(bytes30)\""
																	},
																	"value": "log(bytes30)"
																},
																{
																	"id": 3088,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3081,
																	"src": "4705:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes30",
																		"typeString": "bytes30"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_ee12c4edbd73d98174a6bf3454562c4874f59cb381176b662ca65f625f97d6ad",
																		"typeString": "literal_string \"log(bytes30)\""
																	},
																	{
																		"typeIdentifier": "t_bytes30",
																		"typeString": "bytes30"
																	}
																],
																"expression": {
																	"id": 3085,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "4665:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3086,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "4665:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3089,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "4665:43:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3084,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "4649:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3090,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4649:60:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3091,
												"nodeType": "ExpressionStatement",
												"src": "4649:60:12"
											}
										]
									},
									"id": 3093,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes30",
									"nameLocation": "4608:10:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3082,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3081,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "4627:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3093,
												"src": "4619:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes30",
													"typeString": "bytes30"
												},
												"typeName": {
													"id": 3080,
													"name": "bytes30",
													"nodeType": "ElementaryTypeName",
													"src": "4619:7:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes30",
														"typeString": "bytes30"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4618:12:12"
									},
									"returnParameters": {
										"id": 3083,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "4645:0:12"
									},
									"scope": 10618,
									"src": "4599:114:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3106,
										"nodeType": "Block",
										"src": "4762:68:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f67286279746573333129",
																	"id": 3101,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "4806:14:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_c2854d92a0707e582e2710f9c9d3f148fdcf7e7da3b4270c2cfa3e223a2c50ce",
																		"typeString": "literal_string \"log(bytes31)\""
																	},
																	"value": "log(bytes31)"
																},
																{
																	"id": 3102,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3095,
																	"src": "4822:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes31",
																		"typeString": "bytes31"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_c2854d92a0707e582e2710f9c9d3f148fdcf7e7da3b4270c2cfa3e223a2c50ce",
																		"typeString": "literal_string \"log(bytes31)\""
																	},
																	{
																		"typeIdentifier": "t_bytes31",
																		"typeString": "bytes31"
																	}
																],
																"expression": {
																	"id": 3099,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "4782:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3100,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "4782:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3103,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "4782:43:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3098,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "4766:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3104,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4766:60:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3105,
												"nodeType": "ExpressionStatement",
												"src": "4766:60:12"
											}
										]
									},
									"id": 3107,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes31",
									"nameLocation": "4725:10:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3096,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3095,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "4744:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3107,
												"src": "4736:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes31",
													"typeString": "bytes31"
												},
												"typeName": {
													"id": 3094,
													"name": "bytes31",
													"nodeType": "ElementaryTypeName",
													"src": "4736:7:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes31",
														"typeString": "bytes31"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4735:12:12"
									},
									"returnParameters": {
										"id": 3097,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "4762:0:12"
									},
									"scope": 10618,
									"src": "4716:114:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3120,
										"nodeType": "Block",
										"src": "4879:68:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f67286279746573333229",
																	"id": 3115,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "4923:14:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_27b7cf8513ac6b65cae720183e1e60e67f8a9d92c01286c19d51d4e30aa269da",
																		"typeString": "literal_string \"log(bytes32)\""
																	},
																	"value": "log(bytes32)"
																},
																{
																	"id": 3116,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3109,
																	"src": "4939:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bytes32",
																		"typeString": "bytes32"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_27b7cf8513ac6b65cae720183e1e60e67f8a9d92c01286c19d51d4e30aa269da",
																		"typeString": "literal_string \"log(bytes32)\""
																	},
																	{
																		"typeIdentifier": "t_bytes32",
																		"typeString": "bytes32"
																	}
																],
																"expression": {
																	"id": 3113,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "4899:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3114,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "4899:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3117,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "4899:43:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3112,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "4883:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3118,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4883:60:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3119,
												"nodeType": "ExpressionStatement",
												"src": "4883:60:12"
											}
										]
									},
									"id": 3121,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "logBytes32",
									"nameLocation": "4842:10:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3110,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3109,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "4861:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3121,
												"src": "4853:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bytes32",
													"typeString": "bytes32"
												},
												"typeName": {
													"id": 3108,
													"name": "bytes32",
													"nodeType": "ElementaryTypeName",
													"src": "4853:7:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bytes32",
														"typeString": "bytes32"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4852:12:12"
									},
									"returnParameters": {
										"id": 3111,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "4879:0:12"
									},
									"scope": 10618,
									"src": "4833:114:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3134,
										"nodeType": "Block",
										"src": "4986:65:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e7429",
																	"id": 3129,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "5030:11:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_f5b1bba92d8f98cf25e27c94d7fc7cbfbae95a49dfe5ab0cdf64ddd7181bb984",
																		"typeString": "literal_string \"log(uint)\""
																	},
																	"value": "log(uint)"
																},
																{
																	"id": 3130,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3123,
																	"src": "5043:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_f5b1bba92d8f98cf25e27c94d7fc7cbfbae95a49dfe5ab0cdf64ddd7181bb984",
																		"typeString": "literal_string \"log(uint)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 3127,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "5006:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3128,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "5006:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3131,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "5006:40:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3126,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "4990:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3132,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "4990:57:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3133,
												"nodeType": "ExpressionStatement",
												"src": "4990:57:12"
											}
										]
									},
									"id": 3135,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "4959:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3124,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3123,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "4968:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3135,
												"src": "4963:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3122,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "4963:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "4962:9:12"
									},
									"returnParameters": {
										"id": 3125,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "4986:0:12"
									},
									"scope": 10618,
									"src": "4950:101:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3148,
										"nodeType": "Block",
										"src": "5099:67:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e6729",
																	"id": 3143,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "5143:13:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50",
																		"typeString": "literal_string \"log(string)\""
																	},
																	"value": "log(string)"
																},
																{
																	"id": 3144,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3137,
																	"src": "5158:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50",
																		"typeString": "literal_string \"log(string)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 3141,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "5119:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3142,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "5119:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3145,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "5119:42:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3140,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "5103:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3146,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5103:59:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3147,
												"nodeType": "ExpressionStatement",
												"src": "5103:59:12"
											}
										]
									},
									"id": 3149,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "5063:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3138,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3137,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "5081:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3149,
												"src": "5067:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3136,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "5067:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5066:18:12"
									},
									"returnParameters": {
										"id": 3139,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "5099:0:12"
									},
									"scope": 10618,
									"src": "5054:112:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3162,
										"nodeType": "Block",
										"src": "5205:65:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c29",
																	"id": 3157,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "5249:11:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7",
																		"typeString": "literal_string \"log(bool)\""
																	},
																	"value": "log(bool)"
																},
																{
																	"id": 3158,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3151,
																	"src": "5262:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7",
																		"typeString": "literal_string \"log(bool)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 3155,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "5225:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3156,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "5225:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3159,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "5225:40:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3154,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "5209:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3160,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5209:57:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3161,
												"nodeType": "ExpressionStatement",
												"src": "5209:57:12"
											}
										]
									},
									"id": 3163,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "5178:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3152,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3151,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "5187:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3163,
												"src": "5182:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3150,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "5182:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5181:9:12"
									},
									"returnParameters": {
										"id": 3153,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "5205:0:12"
									},
									"scope": 10618,
									"src": "5169:101:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3176,
										"nodeType": "Block",
										"src": "5312:68:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f67286164647265737329",
																	"id": 3171,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "5356:14:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428",
																		"typeString": "literal_string \"log(address)\""
																	},
																	"value": "log(address)"
																},
																{
																	"id": 3172,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3165,
																	"src": "5372:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428",
																		"typeString": "literal_string \"log(address)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 3169,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "5332:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3170,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "5332:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3173,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "5332:43:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3168,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "5316:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3174,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5316:60:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3175,
												"nodeType": "ExpressionStatement",
												"src": "5316:60:12"
											}
										]
									},
									"id": 3177,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "5282:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3166,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3165,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "5294:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3177,
												"src": "5286:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 3164,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "5286:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5285:12:12"
									},
									"returnParameters": {
										"id": 3167,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "5312:0:12"
									},
									"scope": 10618,
									"src": "5273:107:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3193,
										"nodeType": "Block",
										"src": "5428:74:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c75696e7429",
																	"id": 3187,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "5472:16:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_6c0f69806b714804c91bc48c3b408dde7373841a86e55c9ea3ee0c5945b4bc32",
																		"typeString": "literal_string \"log(uint,uint)\""
																	},
																	"value": "log(uint,uint)"
																},
																{
																	"id": 3188,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3179,
																	"src": "5490:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 3189,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3181,
																	"src": "5494:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_6c0f69806b714804c91bc48c3b408dde7373841a86e55c9ea3ee0c5945b4bc32",
																		"typeString": "literal_string \"log(uint,uint)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 3185,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "5448:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3186,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "5448:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3190,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "5448:49:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3184,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "5432:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3191,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5432:66:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3192,
												"nodeType": "ExpressionStatement",
												"src": "5432:66:12"
											}
										]
									},
									"id": 3194,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "5392:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3182,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3179,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "5401:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3194,
												"src": "5396:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3178,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "5396:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3181,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "5410:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3194,
												"src": "5405:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3180,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "5405:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5395:18:12"
									},
									"returnParameters": {
										"id": 3183,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "5428:0:12"
									},
									"scope": 10618,
									"src": "5383:119:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3210,
										"nodeType": "Block",
										"src": "5559:76:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c737472696e6729",
																	"id": 3204,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "5603:18:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_0fa3f345ed69310615f27bede4ec80a963e2134dd287fa93c82b0c1eefe029a8",
																		"typeString": "literal_string \"log(uint,string)\""
																	},
																	"value": "log(uint,string)"
																},
																{
																	"id": 3205,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3196,
																	"src": "5623:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 3206,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3198,
																	"src": "5627:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_0fa3f345ed69310615f27bede4ec80a963e2134dd287fa93c82b0c1eefe029a8",
																		"typeString": "literal_string \"log(uint,string)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 3202,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "5579:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3203,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "5579:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3207,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "5579:51:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3201,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "5563:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3208,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5563:68:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3209,
												"nodeType": "ExpressionStatement",
												"src": "5563:68:12"
											}
										]
									},
									"id": 3211,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "5514:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3199,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3196,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "5523:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3211,
												"src": "5518:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3195,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "5518:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3198,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "5541:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3211,
												"src": "5527:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3197,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "5527:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5517:27:12"
									},
									"returnParameters": {
										"id": 3200,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "5559:0:12"
									},
									"scope": 10618,
									"src": "5505:130:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3227,
										"nodeType": "Block",
										"src": "5683:74:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c626f6f6c29",
																	"id": 3221,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "5727:16:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_1e6dd4ecaf57d2ec6eb02f2f993c53040200a16451fba718b7e8b170825fd172",
																		"typeString": "literal_string \"log(uint,bool)\""
																	},
																	"value": "log(uint,bool)"
																},
																{
																	"id": 3222,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3213,
																	"src": "5745:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 3223,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3215,
																	"src": "5749:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_1e6dd4ecaf57d2ec6eb02f2f993c53040200a16451fba718b7e8b170825fd172",
																		"typeString": "literal_string \"log(uint,bool)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 3219,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "5703:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3220,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "5703:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3224,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "5703:49:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3218,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "5687:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3225,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5687:66:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3226,
												"nodeType": "ExpressionStatement",
												"src": "5687:66:12"
											}
										]
									},
									"id": 3228,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "5647:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3216,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3213,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "5656:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3228,
												"src": "5651:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3212,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "5651:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3215,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "5665:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3228,
												"src": "5660:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3214,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "5660:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5650:18:12"
									},
									"returnParameters": {
										"id": 3217,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "5683:0:12"
									},
									"scope": 10618,
									"src": "5638:119:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3244,
										"nodeType": "Block",
										"src": "5808:77:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c6164647265737329",
																	"id": 3238,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "5852:19:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_58eb860cb5df2c2db83667a7ce62ef14d1323e0f3e304ea316fb64cd2c6fd3b2",
																		"typeString": "literal_string \"log(uint,address)\""
																	},
																	"value": "log(uint,address)"
																},
																{
																	"id": 3239,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3230,
																	"src": "5873:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 3240,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3232,
																	"src": "5877:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_58eb860cb5df2c2db83667a7ce62ef14d1323e0f3e304ea316fb64cd2c6fd3b2",
																		"typeString": "literal_string \"log(uint,address)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 3236,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "5828:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3237,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "5828:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3241,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "5828:52:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3235,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "5812:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3242,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5812:69:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3243,
												"nodeType": "ExpressionStatement",
												"src": "5812:69:12"
											}
										]
									},
									"id": 3245,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "5769:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3233,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3230,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "5778:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3245,
												"src": "5773:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3229,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "5773:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3232,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "5790:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3245,
												"src": "5782:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 3231,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "5782:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5772:21:12"
									},
									"returnParameters": {
										"id": 3234,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "5808:0:12"
									},
									"scope": 10618,
									"src": "5760:125:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3261,
										"nodeType": "Block",
										"src": "5942:76:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c75696e7429",
																	"id": 3255,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "5986:18:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_9710a9d00d210736b1ce918b483e56000e2885769da8118b2fbf9fe33949d3bd",
																		"typeString": "literal_string \"log(string,uint)\""
																	},
																	"value": "log(string,uint)"
																},
																{
																	"id": 3256,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3247,
																	"src": "6006:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 3257,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3249,
																	"src": "6010:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_9710a9d00d210736b1ce918b483e56000e2885769da8118b2fbf9fe33949d3bd",
																		"typeString": "literal_string \"log(string,uint)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 3253,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "5962:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3254,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "5962:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3258,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "5962:51:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3252,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "5946:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3259,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "5946:68:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3260,
												"nodeType": "ExpressionStatement",
												"src": "5946:68:12"
											}
										]
									},
									"id": 3262,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "5897:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3250,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3247,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "5915:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3262,
												"src": "5901:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3246,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "5901:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3249,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "5924:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3262,
												"src": "5919:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3248,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "5919:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "5900:27:12"
									},
									"returnParameters": {
										"id": 3251,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "5942:0:12"
									},
									"scope": 10618,
									"src": "5888:130:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3278,
										"nodeType": "Block",
										"src": "6084:78:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c737472696e6729",
																	"id": 3272,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "6128:20:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac",
																		"typeString": "literal_string \"log(string,string)\""
																	},
																	"value": "log(string,string)"
																},
																{
																	"id": 3273,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3264,
																	"src": "6150:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 3274,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3266,
																	"src": "6154:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac",
																		"typeString": "literal_string \"log(string,string)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 3270,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "6104:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3271,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "6104:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3275,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "6104:53:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3269,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "6088:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3276,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "6088:70:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3277,
												"nodeType": "ExpressionStatement",
												"src": "6088:70:12"
											}
										]
									},
									"id": 3279,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "6030:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3267,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3264,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "6048:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3279,
												"src": "6034:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3263,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "6034:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3266,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "6066:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3279,
												"src": "6052:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3265,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "6052:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6033:36:12"
									},
									"returnParameters": {
										"id": 3268,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "6084:0:12"
									},
									"scope": 10618,
									"src": "6021:141:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3295,
										"nodeType": "Block",
										"src": "6219:76:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c626f6f6c29",
																	"id": 3289,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "6263:18:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_c3b556354c088fbb43886eb83c2a04bc7089663f964d22be308197a236f5b870",
																		"typeString": "literal_string \"log(string,bool)\""
																	},
																	"value": "log(string,bool)"
																},
																{
																	"id": 3290,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3281,
																	"src": "6283:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 3291,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3283,
																	"src": "6287:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_c3b556354c088fbb43886eb83c2a04bc7089663f964d22be308197a236f5b870",
																		"typeString": "literal_string \"log(string,bool)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 3287,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "6239:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3288,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "6239:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3292,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "6239:51:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3286,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "6223:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3293,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "6223:68:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3294,
												"nodeType": "ExpressionStatement",
												"src": "6223:68:12"
											}
										]
									},
									"id": 3296,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "6174:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3284,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3281,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "6192:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3296,
												"src": "6178:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3280,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "6178:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3283,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "6201:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3296,
												"src": "6196:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3282,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "6196:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6177:27:12"
									},
									"returnParameters": {
										"id": 3285,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "6219:0:12"
									},
									"scope": 10618,
									"src": "6165:130:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3312,
										"nodeType": "Block",
										"src": "6355:79:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c6164647265737329",
																	"id": 3306,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "6399:21:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_319af333460570a1937bf195dd33445c0d0951c59127da6f1f038b9fdce3fd72",
																		"typeString": "literal_string \"log(string,address)\""
																	},
																	"value": "log(string,address)"
																},
																{
																	"id": 3307,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3298,
																	"src": "6422:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 3308,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3300,
																	"src": "6426:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_319af333460570a1937bf195dd33445c0d0951c59127da6f1f038b9fdce3fd72",
																		"typeString": "literal_string \"log(string,address)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 3304,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "6375:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3305,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "6375:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3309,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "6375:54:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3303,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "6359:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3310,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "6359:71:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3311,
												"nodeType": "ExpressionStatement",
												"src": "6359:71:12"
											}
										]
									},
									"id": 3313,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "6307:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3301,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3298,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "6325:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3313,
												"src": "6311:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3297,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "6311:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3300,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "6337:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3313,
												"src": "6329:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 3299,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "6329:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6310:30:12"
									},
									"returnParameters": {
										"id": 3302,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "6355:0:12"
									},
									"scope": 10618,
									"src": "6298:136:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3329,
										"nodeType": "Block",
										"src": "6482:74:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c75696e7429",
																	"id": 3323,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "6526:16:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_364b6a921e139cbe48176ce2b1f6700c7e568330bc5da26f60350cc33cf2a299",
																		"typeString": "literal_string \"log(bool,uint)\""
																	},
																	"value": "log(bool,uint)"
																},
																{
																	"id": 3324,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3315,
																	"src": "6544:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 3325,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3317,
																	"src": "6548:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_364b6a921e139cbe48176ce2b1f6700c7e568330bc5da26f60350cc33cf2a299",
																		"typeString": "literal_string \"log(bool,uint)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 3321,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "6502:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3322,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "6502:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3326,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "6502:49:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3320,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "6486:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3327,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "6486:66:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3328,
												"nodeType": "ExpressionStatement",
												"src": "6486:66:12"
											}
										]
									},
									"id": 3330,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "6446:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3318,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3315,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "6455:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3330,
												"src": "6450:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3314,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "6450:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3317,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "6464:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3330,
												"src": "6459:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3316,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "6459:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6449:18:12"
									},
									"returnParameters": {
										"id": 3319,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "6482:0:12"
									},
									"scope": 10618,
									"src": "6437:119:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3346,
										"nodeType": "Block",
										"src": "6613:76:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c737472696e6729",
																	"id": 3340,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "6657:18:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_8feac5256a5b88d7ca0173065b796567ecbc9d75ec022fa0f044eb427f962b84",
																		"typeString": "literal_string \"log(bool,string)\""
																	},
																	"value": "log(bool,string)"
																},
																{
																	"id": 3341,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3332,
																	"src": "6677:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 3342,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3334,
																	"src": "6681:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_8feac5256a5b88d7ca0173065b796567ecbc9d75ec022fa0f044eb427f962b84",
																		"typeString": "literal_string \"log(bool,string)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 3338,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "6633:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3339,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "6633:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3343,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "6633:51:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3337,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "6617:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3344,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "6617:68:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3345,
												"nodeType": "ExpressionStatement",
												"src": "6617:68:12"
											}
										]
									},
									"id": 3347,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "6568:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3335,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3332,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "6577:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3347,
												"src": "6572:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3331,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "6572:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3334,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "6595:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3347,
												"src": "6581:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3333,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "6581:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6571:27:12"
									},
									"returnParameters": {
										"id": 3336,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "6613:0:12"
									},
									"scope": 10618,
									"src": "6559:130:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3363,
										"nodeType": "Block",
										"src": "6737:74:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c626f6f6c29",
																	"id": 3357,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "6781:16:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_2a110e83227fbe26ff7524076f2091da3e9aa01d70b93677da53b41d22f4fb15",
																		"typeString": "literal_string \"log(bool,bool)\""
																	},
																	"value": "log(bool,bool)"
																},
																{
																	"id": 3358,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3349,
																	"src": "6799:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 3359,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3351,
																	"src": "6803:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_2a110e83227fbe26ff7524076f2091da3e9aa01d70b93677da53b41d22f4fb15",
																		"typeString": "literal_string \"log(bool,bool)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 3355,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "6757:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3356,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "6757:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3360,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "6757:49:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3354,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "6741:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3361,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "6741:66:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3362,
												"nodeType": "ExpressionStatement",
												"src": "6741:66:12"
											}
										]
									},
									"id": 3364,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "6701:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3352,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3349,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "6710:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3364,
												"src": "6705:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3348,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "6705:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3351,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "6719:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3364,
												"src": "6714:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3350,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "6714:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6704:18:12"
									},
									"returnParameters": {
										"id": 3353,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "6737:0:12"
									},
									"scope": 10618,
									"src": "6692:119:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3380,
										"nodeType": "Block",
										"src": "6862:77:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c6164647265737329",
																	"id": 3374,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "6906:19:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_853c4849443241e2249adafa4f69c8bb738b0f17c7a0a9d9997450cd71db4d55",
																		"typeString": "literal_string \"log(bool,address)\""
																	},
																	"value": "log(bool,address)"
																},
																{
																	"id": 3375,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3366,
																	"src": "6927:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 3376,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3368,
																	"src": "6931:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_853c4849443241e2249adafa4f69c8bb738b0f17c7a0a9d9997450cd71db4d55",
																		"typeString": "literal_string \"log(bool,address)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 3372,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "6882:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3373,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "6882:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3377,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "6882:52:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3371,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "6866:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3378,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "6866:69:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3379,
												"nodeType": "ExpressionStatement",
												"src": "6866:69:12"
											}
										]
									},
									"id": 3381,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "6823:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3369,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3366,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "6832:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3381,
												"src": "6827:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3365,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "6827:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3368,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "6844:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3381,
												"src": "6836:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 3367,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "6836:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6826:21:12"
									},
									"returnParameters": {
										"id": 3370,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "6862:0:12"
									},
									"scope": 10618,
									"src": "6814:125:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3397,
										"nodeType": "Block",
										"src": "6990:77:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c75696e7429",
																	"id": 3391,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "7034:19:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_2243cfa3a64f0f85afef83b08ba731ebd8a4b1053fdc66eb414b069452c9f133",
																		"typeString": "literal_string \"log(address,uint)\""
																	},
																	"value": "log(address,uint)"
																},
																{
																	"id": 3392,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3383,
																	"src": "7055:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 3393,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3385,
																	"src": "7059:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_2243cfa3a64f0f85afef83b08ba731ebd8a4b1053fdc66eb414b069452c9f133",
																		"typeString": "literal_string \"log(address,uint)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 3389,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "7010:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3390,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "7010:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3394,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "7010:52:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3388,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "6994:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3395,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "6994:69:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3396,
												"nodeType": "ExpressionStatement",
												"src": "6994:69:12"
											}
										]
									},
									"id": 3398,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "6951:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3386,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3383,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "6963:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3398,
												"src": "6955:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 3382,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "6955:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3385,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "6972:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3398,
												"src": "6967:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3384,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "6967:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "6954:21:12"
									},
									"returnParameters": {
										"id": 3387,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "6990:0:12"
									},
									"scope": 10618,
									"src": "6942:125:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3414,
										"nodeType": "Block",
										"src": "7127:79:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c737472696e6729",
																	"id": 3408,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "7171:21:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_759f86bbdd0758679ecefbd32ea620068b2339dddd9e45ee0fa567ee6c81f0ab",
																		"typeString": "literal_string \"log(address,string)\""
																	},
																	"value": "log(address,string)"
																},
																{
																	"id": 3409,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3400,
																	"src": "7194:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 3410,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3402,
																	"src": "7198:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_759f86bbdd0758679ecefbd32ea620068b2339dddd9e45ee0fa567ee6c81f0ab",
																		"typeString": "literal_string \"log(address,string)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 3406,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "7147:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3407,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "7147:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3411,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "7147:54:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3405,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "7131:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3412,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "7131:71:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3413,
												"nodeType": "ExpressionStatement",
												"src": "7131:71:12"
											}
										]
									},
									"id": 3415,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "7079:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3403,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3400,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "7091:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3415,
												"src": "7083:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 3399,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "7083:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3402,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "7109:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3415,
												"src": "7095:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3401,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "7095:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "7082:30:12"
									},
									"returnParameters": {
										"id": 3404,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "7127:0:12"
									},
									"scope": 10618,
									"src": "7070:136:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3431,
										"nodeType": "Block",
										"src": "7257:77:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c626f6f6c29",
																	"id": 3425,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "7301:19:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_75b605d31a3bf49c8d814696c7c66216d3a7e81348c450078f032e425592f72b",
																		"typeString": "literal_string \"log(address,bool)\""
																	},
																	"value": "log(address,bool)"
																},
																{
																	"id": 3426,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3417,
																	"src": "7322:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 3427,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3419,
																	"src": "7326:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_75b605d31a3bf49c8d814696c7c66216d3a7e81348c450078f032e425592f72b",
																		"typeString": "literal_string \"log(address,bool)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 3423,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "7277:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3424,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "7277:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3428,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "7277:52:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3422,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "7261:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3429,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "7261:69:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3430,
												"nodeType": "ExpressionStatement",
												"src": "7261:69:12"
											}
										]
									},
									"id": 3432,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "7218:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3420,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3417,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "7230:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3432,
												"src": "7222:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 3416,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "7222:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3419,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "7239:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3432,
												"src": "7234:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3418,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "7234:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "7221:21:12"
									},
									"returnParameters": {
										"id": 3421,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "7257:0:12"
									},
									"scope": 10618,
									"src": "7209:125:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3448,
										"nodeType": "Block",
										"src": "7388:80:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c6164647265737329",
																	"id": 3442,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "7432:22:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_daf0d4aa9a5679e832ac921da67b43572b4326ee2565442d3ed255b48cfb5161",
																		"typeString": "literal_string \"log(address,address)\""
																	},
																	"value": "log(address,address)"
																},
																{
																	"id": 3443,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3434,
																	"src": "7456:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 3444,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3436,
																	"src": "7460:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_daf0d4aa9a5679e832ac921da67b43572b4326ee2565442d3ed255b48cfb5161",
																		"typeString": "literal_string \"log(address,address)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 3440,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "7408:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3441,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "7408:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3445,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "7408:55:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3439,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "7392:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3446,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "7392:72:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3447,
												"nodeType": "ExpressionStatement",
												"src": "7392:72:12"
											}
										]
									},
									"id": 3449,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "7346:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3437,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3434,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "7358:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3449,
												"src": "7350:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 3433,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "7350:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3436,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "7370:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3449,
												"src": "7362:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 3435,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "7362:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "7349:24:12"
									},
									"returnParameters": {
										"id": 3438,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "7388:0:12"
									},
									"scope": 10618,
									"src": "7337:131:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3468,
										"nodeType": "Block",
										"src": "7525:83:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c75696e742c75696e7429",
																	"id": 3461,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "7569:21:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_e7820a7400e33a94b0ae6f00adee99b97ebef8b77c9e38dd555c2f6b541dee17",
																		"typeString": "literal_string \"log(uint,uint,uint)\""
																	},
																	"value": "log(uint,uint,uint)"
																},
																{
																	"id": 3462,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3451,
																	"src": "7592:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 3463,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3453,
																	"src": "7596:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 3464,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3455,
																	"src": "7600:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_e7820a7400e33a94b0ae6f00adee99b97ebef8b77c9e38dd555c2f6b541dee17",
																		"typeString": "literal_string \"log(uint,uint,uint)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 3459,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "7545:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3460,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "7545:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3465,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "7545:58:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3458,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "7529:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3466,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "7529:75:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3467,
												"nodeType": "ExpressionStatement",
												"src": "7529:75:12"
											}
										]
									},
									"id": 3469,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "7480:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3456,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3451,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "7489:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3469,
												"src": "7484:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3450,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "7484:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3453,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "7498:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3469,
												"src": "7493:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3452,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "7493:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3455,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "7507:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3469,
												"src": "7502:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3454,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "7502:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "7483:27:12"
									},
									"returnParameters": {
										"id": 3457,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "7525:0:12"
									},
									"scope": 10618,
									"src": "7471:137:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3488,
										"nodeType": "Block",
										"src": "7674:85:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c75696e742c737472696e6729",
																	"id": 3481,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "7718:23:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_7d690ee617a4217569e96b85c815115b0eee15407adaa46490ed719a45458699",
																		"typeString": "literal_string \"log(uint,uint,string)\""
																	},
																	"value": "log(uint,uint,string)"
																},
																{
																	"id": 3482,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3471,
																	"src": "7743:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 3483,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3473,
																	"src": "7747:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 3484,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3475,
																	"src": "7751:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_7d690ee617a4217569e96b85c815115b0eee15407adaa46490ed719a45458699",
																		"typeString": "literal_string \"log(uint,uint,string)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 3479,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "7694:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3480,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "7694:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3485,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "7694:60:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3478,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "7678:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3486,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "7678:77:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3487,
												"nodeType": "ExpressionStatement",
												"src": "7678:77:12"
											}
										]
									},
									"id": 3489,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "7620:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3476,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3471,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "7629:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3489,
												"src": "7624:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3470,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "7624:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3473,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "7638:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3489,
												"src": "7633:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3472,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "7633:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3475,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "7656:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3489,
												"src": "7642:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3474,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "7642:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "7623:36:12"
									},
									"returnParameters": {
										"id": 3477,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "7674:0:12"
									},
									"scope": 10618,
									"src": "7611:148:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3508,
										"nodeType": "Block",
										"src": "7816:83:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c75696e742c626f6f6c29",
																	"id": 3501,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "7860:21:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_67570ff704783f5d282b26317dc28aeb4fe23c085020ec6e580604c709916fa8",
																		"typeString": "literal_string \"log(uint,uint,bool)\""
																	},
																	"value": "log(uint,uint,bool)"
																},
																{
																	"id": 3502,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3491,
																	"src": "7883:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 3503,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3493,
																	"src": "7887:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 3504,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3495,
																	"src": "7891:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_67570ff704783f5d282b26317dc28aeb4fe23c085020ec6e580604c709916fa8",
																		"typeString": "literal_string \"log(uint,uint,bool)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 3499,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "7836:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3500,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "7836:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3505,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "7836:58:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3498,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "7820:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3506,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "7820:75:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3507,
												"nodeType": "ExpressionStatement",
												"src": "7820:75:12"
											}
										]
									},
									"id": 3509,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "7771:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3496,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3491,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "7780:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3509,
												"src": "7775:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3490,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "7775:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3493,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "7789:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3509,
												"src": "7784:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3492,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "7784:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3495,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "7798:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3509,
												"src": "7793:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3494,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "7793:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "7774:27:12"
									},
									"returnParameters": {
										"id": 3497,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "7816:0:12"
									},
									"scope": 10618,
									"src": "7762:137:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3528,
										"nodeType": "Block",
										"src": "7959:86:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c75696e742c6164647265737329",
																	"id": 3521,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "8003:24:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_be33491b8b53b7f3deae2959d1f4b0a22e6967a778c50f03dc188de84a207616",
																		"typeString": "literal_string \"log(uint,uint,address)\""
																	},
																	"value": "log(uint,uint,address)"
																},
																{
																	"id": 3522,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3511,
																	"src": "8029:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 3523,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3513,
																	"src": "8033:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 3524,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3515,
																	"src": "8037:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_be33491b8b53b7f3deae2959d1f4b0a22e6967a778c50f03dc188de84a207616",
																		"typeString": "literal_string \"log(uint,uint,address)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 3519,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "7979:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3520,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "7979:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3525,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "7979:61:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3518,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "7963:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3526,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "7963:78:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3527,
												"nodeType": "ExpressionStatement",
												"src": "7963:78:12"
											}
										]
									},
									"id": 3529,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "7911:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3516,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3511,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "7920:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3529,
												"src": "7915:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3510,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "7915:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3513,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "7929:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3529,
												"src": "7924:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3512,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "7924:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3515,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "7941:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3529,
												"src": "7933:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 3514,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "7933:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "7914:30:12"
									},
									"returnParameters": {
										"id": 3517,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "7959:0:12"
									},
									"scope": 10618,
									"src": "7902:143:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3548,
										"nodeType": "Block",
										"src": "8111:85:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c737472696e672c75696e7429",
																	"id": 3541,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "8155:23:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_5b6de83ff0d95cd44df8bb8bfd95aa0a6291cab3b8502d85b1dcfd35a64c81cd",
																		"typeString": "literal_string \"log(uint,string,uint)\""
																	},
																	"value": "log(uint,string,uint)"
																},
																{
																	"id": 3542,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3531,
																	"src": "8180:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 3543,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3533,
																	"src": "8184:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 3544,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3535,
																	"src": "8188:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_5b6de83ff0d95cd44df8bb8bfd95aa0a6291cab3b8502d85b1dcfd35a64c81cd",
																		"typeString": "literal_string \"log(uint,string,uint)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 3539,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "8131:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3540,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "8131:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3545,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "8131:60:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3538,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "8115:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3546,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "8115:77:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3547,
												"nodeType": "ExpressionStatement",
												"src": "8115:77:12"
											}
										]
									},
									"id": 3549,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "8057:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3536,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3531,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "8066:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3549,
												"src": "8061:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3530,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "8061:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3533,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "8084:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3549,
												"src": "8070:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3532,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "8070:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3535,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "8093:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3549,
												"src": "8088:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3534,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "8088:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "8060:36:12"
									},
									"returnParameters": {
										"id": 3537,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "8111:0:12"
									},
									"scope": 10618,
									"src": "8048:148:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3568,
										"nodeType": "Block",
										"src": "8271:87:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c737472696e672c737472696e6729",
																	"id": 3561,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "8315:25:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_3f57c295245f8891b303347a08039155dde08dde601649242724a0ce876bcc65",
																		"typeString": "literal_string \"log(uint,string,string)\""
																	},
																	"value": "log(uint,string,string)"
																},
																{
																	"id": 3562,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3551,
																	"src": "8342:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 3563,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3553,
																	"src": "8346:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 3564,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3555,
																	"src": "8350:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_3f57c295245f8891b303347a08039155dde08dde601649242724a0ce876bcc65",
																		"typeString": "literal_string \"log(uint,string,string)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 3559,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "8291:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3560,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "8291:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3565,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "8291:62:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3558,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "8275:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3566,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "8275:79:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3567,
												"nodeType": "ExpressionStatement",
												"src": "8275:79:12"
											}
										]
									},
									"id": 3569,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "8208:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3556,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3551,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "8217:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3569,
												"src": "8212:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3550,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "8212:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3553,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "8235:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3569,
												"src": "8221:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3552,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "8221:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3555,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "8253:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3569,
												"src": "8239:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3554,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "8239:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "8211:45:12"
									},
									"returnParameters": {
										"id": 3557,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "8271:0:12"
									},
									"scope": 10618,
									"src": "8199:159:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3588,
										"nodeType": "Block",
										"src": "8424:85:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c737472696e672c626f6f6c29",
																	"id": 3581,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "8468:23:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_46a7d0ce13c2c26d158d9defa8ce488dbeb81d3c852592fb370bd45953199485",
																		"typeString": "literal_string \"log(uint,string,bool)\""
																	},
																	"value": "log(uint,string,bool)"
																},
																{
																	"id": 3582,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3571,
																	"src": "8493:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 3583,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3573,
																	"src": "8497:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 3584,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3575,
																	"src": "8501:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_46a7d0ce13c2c26d158d9defa8ce488dbeb81d3c852592fb370bd45953199485",
																		"typeString": "literal_string \"log(uint,string,bool)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 3579,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "8444:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3580,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "8444:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3585,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "8444:60:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3578,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "8428:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3586,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "8428:77:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3587,
												"nodeType": "ExpressionStatement",
												"src": "8428:77:12"
											}
										]
									},
									"id": 3589,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "8370:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3576,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3571,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "8379:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3589,
												"src": "8374:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3570,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "8374:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3573,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "8397:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3589,
												"src": "8383:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3572,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "8383:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3575,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "8406:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3589,
												"src": "8401:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3574,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "8401:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "8373:36:12"
									},
									"returnParameters": {
										"id": 3577,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "8424:0:12"
									},
									"scope": 10618,
									"src": "8361:148:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3608,
										"nodeType": "Block",
										"src": "8578:88:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c737472696e672c6164647265737329",
																	"id": 3601,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "8622:26:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_1f90f24a472e5198a9eef41600323c8a476ef0a1db1496125f7d053a74d474ac",
																		"typeString": "literal_string \"log(uint,string,address)\""
																	},
																	"value": "log(uint,string,address)"
																},
																{
																	"id": 3602,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3591,
																	"src": "8650:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 3603,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3593,
																	"src": "8654:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 3604,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3595,
																	"src": "8658:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_1f90f24a472e5198a9eef41600323c8a476ef0a1db1496125f7d053a74d474ac",
																		"typeString": "literal_string \"log(uint,string,address)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 3599,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "8598:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3600,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "8598:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3605,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "8598:63:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3598,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "8582:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3606,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "8582:80:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3607,
												"nodeType": "ExpressionStatement",
												"src": "8582:80:12"
											}
										]
									},
									"id": 3609,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "8521:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3596,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3591,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "8530:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3609,
												"src": "8525:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3590,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "8525:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3593,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "8548:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3609,
												"src": "8534:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3592,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "8534:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3595,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "8560:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3609,
												"src": "8552:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 3594,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "8552:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "8524:39:12"
									},
									"returnParameters": {
										"id": 3597,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "8578:0:12"
									},
									"scope": 10618,
									"src": "8512:154:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3628,
										"nodeType": "Block",
										"src": "8723:83:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c626f6f6c2c75696e7429",
																	"id": 3621,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "8767:21:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_5a4d9922ab81f1126dafac21c1ce3fb483db2e4898341fe0758315eb5f3054d6",
																		"typeString": "literal_string \"log(uint,bool,uint)\""
																	},
																	"value": "log(uint,bool,uint)"
																},
																{
																	"id": 3622,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3611,
																	"src": "8790:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 3623,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3613,
																	"src": "8794:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 3624,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3615,
																	"src": "8798:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_5a4d9922ab81f1126dafac21c1ce3fb483db2e4898341fe0758315eb5f3054d6",
																		"typeString": "literal_string \"log(uint,bool,uint)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 3619,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "8743:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3620,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "8743:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3625,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "8743:58:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3618,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "8727:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3626,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "8727:75:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3627,
												"nodeType": "ExpressionStatement",
												"src": "8727:75:12"
											}
										]
									},
									"id": 3629,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "8678:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3616,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3611,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "8687:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3629,
												"src": "8682:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3610,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "8682:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3613,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "8696:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3629,
												"src": "8691:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3612,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "8691:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3615,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "8705:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3629,
												"src": "8700:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3614,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "8700:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "8681:27:12"
									},
									"returnParameters": {
										"id": 3617,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "8723:0:12"
									},
									"scope": 10618,
									"src": "8669:137:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3648,
										"nodeType": "Block",
										"src": "8872:85:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c626f6f6c2c737472696e6729",
																	"id": 3641,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "8916:23:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_8b0e14fe247223cbba6a19a2fac250db70b4f126d0f3f63ac9c3f080885b9f82",
																		"typeString": "literal_string \"log(uint,bool,string)\""
																	},
																	"value": "log(uint,bool,string)"
																},
																{
																	"id": 3642,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3631,
																	"src": "8941:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 3643,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3633,
																	"src": "8945:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 3644,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3635,
																	"src": "8949:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_8b0e14fe247223cbba6a19a2fac250db70b4f126d0f3f63ac9c3f080885b9f82",
																		"typeString": "literal_string \"log(uint,bool,string)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 3639,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "8892:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3640,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "8892:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3645,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "8892:60:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3638,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "8876:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3646,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "8876:77:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3647,
												"nodeType": "ExpressionStatement",
												"src": "8876:77:12"
											}
										]
									},
									"id": 3649,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "8818:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3636,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3631,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "8827:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3649,
												"src": "8822:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3630,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "8822:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3633,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "8836:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3649,
												"src": "8831:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3632,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "8831:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3635,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "8854:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3649,
												"src": "8840:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3634,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "8840:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "8821:36:12"
									},
									"returnParameters": {
										"id": 3637,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "8872:0:12"
									},
									"scope": 10618,
									"src": "8809:148:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3668,
										"nodeType": "Block",
										"src": "9014:83:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c626f6f6c2c626f6f6c29",
																	"id": 3661,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "9058:21:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_d5ceace024d24c243571d0b2393ca9fb37aa961a0e028332e72cd7dfb84c0971",
																		"typeString": "literal_string \"log(uint,bool,bool)\""
																	},
																	"value": "log(uint,bool,bool)"
																},
																{
																	"id": 3662,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3651,
																	"src": "9081:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 3663,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3653,
																	"src": "9085:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 3664,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3655,
																	"src": "9089:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_d5ceace024d24c243571d0b2393ca9fb37aa961a0e028332e72cd7dfb84c0971",
																		"typeString": "literal_string \"log(uint,bool,bool)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 3659,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "9034:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3660,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "9034:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3665,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "9034:58:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3658,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "9018:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3666,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "9018:75:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3667,
												"nodeType": "ExpressionStatement",
												"src": "9018:75:12"
											}
										]
									},
									"id": 3669,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "8969:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3656,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3651,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "8978:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3669,
												"src": "8973:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3650,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "8973:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3653,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "8987:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3669,
												"src": "8982:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3652,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "8982:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3655,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "8996:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3669,
												"src": "8991:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3654,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "8991:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "8972:27:12"
									},
									"returnParameters": {
										"id": 3657,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "9014:0:12"
									},
									"scope": 10618,
									"src": "8960:137:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3688,
										"nodeType": "Block",
										"src": "9157:86:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c626f6f6c2c6164647265737329",
																	"id": 3681,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "9201:24:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_424effbf6346b3a7c79debdbad20f804c7961e0193d509136d2bb7c09c7ff9b2",
																		"typeString": "literal_string \"log(uint,bool,address)\""
																	},
																	"value": "log(uint,bool,address)"
																},
																{
																	"id": 3682,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3671,
																	"src": "9227:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 3683,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3673,
																	"src": "9231:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 3684,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3675,
																	"src": "9235:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_424effbf6346b3a7c79debdbad20f804c7961e0193d509136d2bb7c09c7ff9b2",
																		"typeString": "literal_string \"log(uint,bool,address)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 3679,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "9177:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3680,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "9177:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3685,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "9177:61:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3678,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "9161:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3686,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "9161:78:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3687,
												"nodeType": "ExpressionStatement",
												"src": "9161:78:12"
											}
										]
									},
									"id": 3689,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "9109:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3676,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3671,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "9118:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3689,
												"src": "9113:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3670,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "9113:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3673,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "9127:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3689,
												"src": "9122:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3672,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "9122:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3675,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "9139:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3689,
												"src": "9131:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 3674,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "9131:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "9112:30:12"
									},
									"returnParameters": {
										"id": 3677,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "9157:0:12"
									},
									"scope": 10618,
									"src": "9100:143:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3708,
										"nodeType": "Block",
										"src": "9303:86:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c616464726573732c75696e7429",
																	"id": 3701,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "9347:24:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_884343aaf095a99f79852cd574543144a9a04148c5eb5687826e5e86a2554617",
																		"typeString": "literal_string \"log(uint,address,uint)\""
																	},
																	"value": "log(uint,address,uint)"
																},
																{
																	"id": 3702,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3691,
																	"src": "9373:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 3703,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3693,
																	"src": "9377:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 3704,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3695,
																	"src": "9381:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_884343aaf095a99f79852cd574543144a9a04148c5eb5687826e5e86a2554617",
																		"typeString": "literal_string \"log(uint,address,uint)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 3699,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "9323:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3700,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "9323:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3705,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "9323:61:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3698,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "9307:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3706,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "9307:78:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3707,
												"nodeType": "ExpressionStatement",
												"src": "9307:78:12"
											}
										]
									},
									"id": 3709,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "9255:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3696,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3691,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "9264:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3709,
												"src": "9259:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3690,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "9259:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3693,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "9276:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3709,
												"src": "9268:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 3692,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "9268:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3695,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "9285:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3709,
												"src": "9280:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3694,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "9280:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "9258:30:12"
									},
									"returnParameters": {
										"id": 3697,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "9303:0:12"
									},
									"scope": 10618,
									"src": "9246:143:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3728,
										"nodeType": "Block",
										"src": "9458:88:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c616464726573732c737472696e6729",
																	"id": 3721,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "9502:26:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_ce83047b6eeeca52b57db5064e316bb4dc615477077814d1a191d68a4818cbed",
																		"typeString": "literal_string \"log(uint,address,string)\""
																	},
																	"value": "log(uint,address,string)"
																},
																{
																	"id": 3722,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3711,
																	"src": "9530:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 3723,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3713,
																	"src": "9534:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 3724,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3715,
																	"src": "9538:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_ce83047b6eeeca52b57db5064e316bb4dc615477077814d1a191d68a4818cbed",
																		"typeString": "literal_string \"log(uint,address,string)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 3719,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "9478:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3720,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "9478:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3725,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "9478:63:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3718,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "9462:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3726,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "9462:80:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3727,
												"nodeType": "ExpressionStatement",
												"src": "9462:80:12"
											}
										]
									},
									"id": 3729,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "9401:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3716,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3711,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "9410:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3729,
												"src": "9405:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3710,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "9405:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3713,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "9422:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3729,
												"src": "9414:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 3712,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "9414:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3715,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "9440:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3729,
												"src": "9426:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3714,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "9426:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "9404:39:12"
									},
									"returnParameters": {
										"id": 3717,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "9458:0:12"
									},
									"scope": 10618,
									"src": "9392:154:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3748,
										"nodeType": "Block",
										"src": "9606:86:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c616464726573732c626f6f6c29",
																	"id": 3741,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "9650:24:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_7ad0128e41690364edd967a051c6d9cea9f7c322246c5ed2ebc0083265828a80",
																		"typeString": "literal_string \"log(uint,address,bool)\""
																	},
																	"value": "log(uint,address,bool)"
																},
																{
																	"id": 3742,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3731,
																	"src": "9676:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 3743,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3733,
																	"src": "9680:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 3744,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3735,
																	"src": "9684:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_7ad0128e41690364edd967a051c6d9cea9f7c322246c5ed2ebc0083265828a80",
																		"typeString": "literal_string \"log(uint,address,bool)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 3739,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "9626:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3740,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "9626:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3745,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "9626:61:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3738,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "9610:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3746,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "9610:78:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3747,
												"nodeType": "ExpressionStatement",
												"src": "9610:78:12"
											}
										]
									},
									"id": 3749,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "9558:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3736,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3731,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "9567:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3749,
												"src": "9562:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3730,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "9562:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3733,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "9579:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3749,
												"src": "9571:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 3732,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "9571:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3735,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "9588:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3749,
												"src": "9583:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3734,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "9583:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "9561:30:12"
									},
									"returnParameters": {
										"id": 3737,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "9606:0:12"
									},
									"scope": 10618,
									"src": "9549:143:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3768,
										"nodeType": "Block",
										"src": "9755:89:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c616464726573732c6164647265737329",
																	"id": 3761,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "9799:27:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_7d77a61be18c592527fe1ce89d591c1badea18ef3198dacc513c5ba08449fd7b",
																		"typeString": "literal_string \"log(uint,address,address)\""
																	},
																	"value": "log(uint,address,address)"
																},
																{
																	"id": 3762,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3751,
																	"src": "9828:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 3763,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3753,
																	"src": "9832:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 3764,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3755,
																	"src": "9836:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_7d77a61be18c592527fe1ce89d591c1badea18ef3198dacc513c5ba08449fd7b",
																		"typeString": "literal_string \"log(uint,address,address)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 3759,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "9775:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3760,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "9775:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3765,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "9775:64:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3758,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "9759:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3766,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "9759:81:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3767,
												"nodeType": "ExpressionStatement",
												"src": "9759:81:12"
											}
										]
									},
									"id": 3769,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "9704:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3756,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3751,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "9713:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3769,
												"src": "9708:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3750,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "9708:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3753,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "9725:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3769,
												"src": "9717:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 3752,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "9717:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3755,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "9737:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3769,
												"src": "9729:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 3754,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "9729:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "9707:33:12"
									},
									"returnParameters": {
										"id": 3757,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "9755:0:12"
									},
									"scope": 10618,
									"src": "9695:149:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3788,
										"nodeType": "Block",
										"src": "9910:85:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c75696e742c75696e7429",
																	"id": 3781,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "9954:23:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_969cdd03749f5aa30c7fce9178272cdca616cb2cc28128d3b9824be8046f827e",
																		"typeString": "literal_string \"log(string,uint,uint)\""
																	},
																	"value": "log(string,uint,uint)"
																},
																{
																	"id": 3782,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3771,
																	"src": "9979:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 3783,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3773,
																	"src": "9983:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 3784,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3775,
																	"src": "9987:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_969cdd03749f5aa30c7fce9178272cdca616cb2cc28128d3b9824be8046f827e",
																		"typeString": "literal_string \"log(string,uint,uint)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 3779,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "9930:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3780,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "9930:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3785,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "9930:60:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3778,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "9914:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3786,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "9914:77:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3787,
												"nodeType": "ExpressionStatement",
												"src": "9914:77:12"
											}
										]
									},
									"id": 3789,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "9856:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3776,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3771,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "9874:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3789,
												"src": "9860:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3770,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "9860:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3773,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "9883:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3789,
												"src": "9878:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3772,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "9878:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3775,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "9892:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3789,
												"src": "9887:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3774,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "9887:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "9859:36:12"
									},
									"returnParameters": {
										"id": 3777,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "9910:0:12"
									},
									"scope": 10618,
									"src": "9847:148:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3808,
										"nodeType": "Block",
										"src": "10070:87:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c75696e742c737472696e6729",
																	"id": 3801,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "10114:25:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_a3f5c739d439f7a3912e960230088fb752539d00203d48771c643a12b26892ec",
																		"typeString": "literal_string \"log(string,uint,string)\""
																	},
																	"value": "log(string,uint,string)"
																},
																{
																	"id": 3802,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3791,
																	"src": "10141:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 3803,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3793,
																	"src": "10145:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 3804,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3795,
																	"src": "10149:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_a3f5c739d439f7a3912e960230088fb752539d00203d48771c643a12b26892ec",
																		"typeString": "literal_string \"log(string,uint,string)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 3799,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "10090:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3800,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "10090:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3805,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "10090:62:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3798,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "10074:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3806,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "10074:79:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3807,
												"nodeType": "ExpressionStatement",
												"src": "10074:79:12"
											}
										]
									},
									"id": 3809,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "10007:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3796,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3791,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "10025:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3809,
												"src": "10011:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3790,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "10011:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3793,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "10034:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3809,
												"src": "10029:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3792,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "10029:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3795,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "10052:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3809,
												"src": "10038:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3794,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "10038:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "10010:45:12"
									},
									"returnParameters": {
										"id": 3797,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "10070:0:12"
									},
									"scope": 10618,
									"src": "9998:159:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3828,
										"nodeType": "Block",
										"src": "10223:85:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c75696e742c626f6f6c29",
																	"id": 3821,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "10267:23:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_f102ee05f3b79d3bc2ba0350401e35479d9f95705fb40abfaeb49d12355695b3",
																		"typeString": "literal_string \"log(string,uint,bool)\""
																	},
																	"value": "log(string,uint,bool)"
																},
																{
																	"id": 3822,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3811,
																	"src": "10292:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 3823,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3813,
																	"src": "10296:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 3824,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3815,
																	"src": "10300:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_f102ee05f3b79d3bc2ba0350401e35479d9f95705fb40abfaeb49d12355695b3",
																		"typeString": "literal_string \"log(string,uint,bool)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 3819,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "10243:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3820,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "10243:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3825,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "10243:60:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3818,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "10227:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3826,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "10227:77:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3827,
												"nodeType": "ExpressionStatement",
												"src": "10227:77:12"
											}
										]
									},
									"id": 3829,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "10169:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3816,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3811,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "10187:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3829,
												"src": "10173:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3810,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "10173:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3813,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "10196:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3829,
												"src": "10191:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3812,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "10191:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3815,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "10205:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3829,
												"src": "10200:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3814,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "10200:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "10172:36:12"
									},
									"returnParameters": {
										"id": 3817,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "10223:0:12"
									},
									"scope": 10618,
									"src": "10160:148:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3848,
										"nodeType": "Block",
										"src": "10377:88:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c75696e742c6164647265737329",
																	"id": 3841,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "10421:26:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_e3849f79a3c07bea1bae0837bfeee5da2531684b262865f1541a60df4fcd512a",
																		"typeString": "literal_string \"log(string,uint,address)\""
																	},
																	"value": "log(string,uint,address)"
																},
																{
																	"id": 3842,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3831,
																	"src": "10449:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 3843,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3833,
																	"src": "10453:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 3844,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3835,
																	"src": "10457:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_e3849f79a3c07bea1bae0837bfeee5da2531684b262865f1541a60df4fcd512a",
																		"typeString": "literal_string \"log(string,uint,address)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 3839,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "10397:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3840,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "10397:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3845,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "10397:63:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3838,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "10381:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3846,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "10381:80:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3847,
												"nodeType": "ExpressionStatement",
												"src": "10381:80:12"
											}
										]
									},
									"id": 3849,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "10320:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3836,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3831,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "10338:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3849,
												"src": "10324:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3830,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "10324:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3833,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "10347:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3849,
												"src": "10342:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3832,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "10342:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3835,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "10359:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3849,
												"src": "10351:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 3834,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "10351:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "10323:39:12"
									},
									"returnParameters": {
										"id": 3837,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "10377:0:12"
									},
									"scope": 10618,
									"src": "10311:154:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3868,
										"nodeType": "Block",
										"src": "10540:87:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c737472696e672c75696e7429",
																	"id": 3861,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "10584:25:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_f362ca59af8dc58335601f00e8a4f3f8cd0c03c9716c1459118a41613b5e0147",
																		"typeString": "literal_string \"log(string,string,uint)\""
																	},
																	"value": "log(string,string,uint)"
																},
																{
																	"id": 3862,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3851,
																	"src": "10611:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 3863,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3853,
																	"src": "10615:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 3864,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3855,
																	"src": "10619:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_f362ca59af8dc58335601f00e8a4f3f8cd0c03c9716c1459118a41613b5e0147",
																		"typeString": "literal_string \"log(string,string,uint)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 3859,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "10560:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3860,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "10560:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3865,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "10560:62:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3858,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "10544:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3866,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "10544:79:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3867,
												"nodeType": "ExpressionStatement",
												"src": "10544:79:12"
											}
										]
									},
									"id": 3869,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "10477:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3856,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3851,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "10495:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3869,
												"src": "10481:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3850,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "10481:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3853,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "10513:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3869,
												"src": "10499:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3852,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "10499:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3855,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "10522:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3869,
												"src": "10517:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3854,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "10517:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "10480:45:12"
									},
									"returnParameters": {
										"id": 3857,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "10540:0:12"
									},
									"scope": 10618,
									"src": "10468:159:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3888,
										"nodeType": "Block",
										"src": "10711:89:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c737472696e672c737472696e6729",
																	"id": 3881,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "10755:27:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_2ced7cef693312206c21f0e92e3b54e2e16bf33db5eec350c78866822c665e1f",
																		"typeString": "literal_string \"log(string,string,string)\""
																	},
																	"value": "log(string,string,string)"
																},
																{
																	"id": 3882,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3871,
																	"src": "10784:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 3883,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3873,
																	"src": "10788:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 3884,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3875,
																	"src": "10792:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_2ced7cef693312206c21f0e92e3b54e2e16bf33db5eec350c78866822c665e1f",
																		"typeString": "literal_string \"log(string,string,string)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 3879,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "10731:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3880,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "10731:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3885,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "10731:64:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3878,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "10715:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3886,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "10715:81:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3887,
												"nodeType": "ExpressionStatement",
												"src": "10715:81:12"
											}
										]
									},
									"id": 3889,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "10639:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3876,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3871,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "10657:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3889,
												"src": "10643:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3870,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "10643:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3873,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "10675:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3889,
												"src": "10661:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3872,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "10661:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3875,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "10693:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3889,
												"src": "10679:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3874,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "10679:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "10642:54:12"
									},
									"returnParameters": {
										"id": 3877,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "10711:0:12"
									},
									"scope": 10618,
									"src": "10630:170:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3908,
										"nodeType": "Block",
										"src": "10875:87:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c737472696e672c626f6f6c29",
																	"id": 3901,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "10919:25:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_b0e0f9b5ad960213f9ab262d120ce4ec3edffc58d1ad51b99628a777e82d8acb",
																		"typeString": "literal_string \"log(string,string,bool)\""
																	},
																	"value": "log(string,string,bool)"
																},
																{
																	"id": 3902,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3891,
																	"src": "10946:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 3903,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3893,
																	"src": "10950:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 3904,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3895,
																	"src": "10954:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_b0e0f9b5ad960213f9ab262d120ce4ec3edffc58d1ad51b99628a777e82d8acb",
																		"typeString": "literal_string \"log(string,string,bool)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 3899,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "10895:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3900,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "10895:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3905,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "10895:62:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3898,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "10879:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3906,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "10879:79:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3907,
												"nodeType": "ExpressionStatement",
												"src": "10879:79:12"
											}
										]
									},
									"id": 3909,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "10812:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3896,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3891,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "10830:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3909,
												"src": "10816:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3890,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "10816:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3893,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "10848:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3909,
												"src": "10834:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3892,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "10834:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3895,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "10857:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3909,
												"src": "10852:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3894,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "10852:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "10815:45:12"
									},
									"returnParameters": {
										"id": 3897,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "10875:0:12"
									},
									"scope": 10618,
									"src": "10803:159:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3928,
										"nodeType": "Block",
										"src": "11040:90:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c737472696e672c6164647265737329",
																	"id": 3921,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "11084:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_95ed0195ee22a092ad93d352c33e8dc78b91f0c01eab9cff270af55b2ae65768",
																		"typeString": "literal_string \"log(string,string,address)\""
																	},
																	"value": "log(string,string,address)"
																},
																{
																	"id": 3922,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3911,
																	"src": "11114:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 3923,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3913,
																	"src": "11118:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 3924,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3915,
																	"src": "11122:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_95ed0195ee22a092ad93d352c33e8dc78b91f0c01eab9cff270af55b2ae65768",
																		"typeString": "literal_string \"log(string,string,address)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 3919,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "11060:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3920,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "11060:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3925,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "11060:65:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3918,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "11044:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3926,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "11044:82:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3927,
												"nodeType": "ExpressionStatement",
												"src": "11044:82:12"
											}
										]
									},
									"id": 3929,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "10974:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3916,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3911,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "10992:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3929,
												"src": "10978:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3910,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "10978:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3913,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "11010:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3929,
												"src": "10996:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3912,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "10996:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3915,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "11022:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3929,
												"src": "11014:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 3914,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "11014:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "10977:48:12"
									},
									"returnParameters": {
										"id": 3917,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "11040:0:12"
									},
									"scope": 10618,
									"src": "10965:165:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3948,
										"nodeType": "Block",
										"src": "11196:85:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c626f6f6c2c75696e7429",
																	"id": 3941,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "11240:23:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_291bb9d00defdc1b95c66c8b4bc10ef714a549c4f22fb190fe687dc5e85a4db1",
																		"typeString": "literal_string \"log(string,bool,uint)\""
																	},
																	"value": "log(string,bool,uint)"
																},
																{
																	"id": 3942,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3931,
																	"src": "11265:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 3943,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3933,
																	"src": "11269:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 3944,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3935,
																	"src": "11273:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_291bb9d00defdc1b95c66c8b4bc10ef714a549c4f22fb190fe687dc5e85a4db1",
																		"typeString": "literal_string \"log(string,bool,uint)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 3939,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "11216:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3940,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "11216:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3945,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "11216:60:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3938,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "11200:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3946,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "11200:77:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3947,
												"nodeType": "ExpressionStatement",
												"src": "11200:77:12"
											}
										]
									},
									"id": 3949,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "11142:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3936,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3931,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "11160:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3949,
												"src": "11146:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3930,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "11146:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3933,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "11169:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3949,
												"src": "11164:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3932,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "11164:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3935,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "11178:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3949,
												"src": "11173:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 3934,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "11173:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "11145:36:12"
									},
									"returnParameters": {
										"id": 3937,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "11196:0:12"
									},
									"scope": 10618,
									"src": "11133:148:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3968,
										"nodeType": "Block",
										"src": "11356:87:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c626f6f6c2c737472696e6729",
																	"id": 3961,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "11400:25:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_e298f47d872a89293d316b9b936000a26f83eda2ba3171b2f9f16e2bf618c3e7",
																		"typeString": "literal_string \"log(string,bool,string)\""
																	},
																	"value": "log(string,bool,string)"
																},
																{
																	"id": 3962,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3951,
																	"src": "11427:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 3963,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3953,
																	"src": "11431:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 3964,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3955,
																	"src": "11435:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_e298f47d872a89293d316b9b936000a26f83eda2ba3171b2f9f16e2bf618c3e7",
																		"typeString": "literal_string \"log(string,bool,string)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 3959,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "11376:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3960,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "11376:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3965,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "11376:62:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3958,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "11360:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3966,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "11360:79:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3967,
												"nodeType": "ExpressionStatement",
												"src": "11360:79:12"
											}
										]
									},
									"id": 3969,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "11293:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3956,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3951,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "11311:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3969,
												"src": "11297:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3950,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "11297:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3953,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "11320:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3969,
												"src": "11315:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3952,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "11315:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3955,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "11338:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3969,
												"src": "11324:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3954,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "11324:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "11296:45:12"
									},
									"returnParameters": {
										"id": 3957,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "11356:0:12"
									},
									"scope": 10618,
									"src": "11284:159:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 3988,
										"nodeType": "Block",
										"src": "11509:85:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c626f6f6c2c626f6f6c29",
																	"id": 3981,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "11553:23:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_850b7ad637241a873b861925ccffb71aaffb030b1df8850f324c9804bc7b443d",
																		"typeString": "literal_string \"log(string,bool,bool)\""
																	},
																	"value": "log(string,bool,bool)"
																},
																{
																	"id": 3982,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3971,
																	"src": "11578:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 3983,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3973,
																	"src": "11582:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 3984,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3975,
																	"src": "11586:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_850b7ad637241a873b861925ccffb71aaffb030b1df8850f324c9804bc7b443d",
																		"typeString": "literal_string \"log(string,bool,bool)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 3979,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "11529:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 3980,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "11529:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 3985,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "11529:60:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3978,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "11513:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 3986,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "11513:77:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 3987,
												"nodeType": "ExpressionStatement",
												"src": "11513:77:12"
											}
										]
									},
									"id": 3989,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "11455:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3976,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3971,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "11473:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3989,
												"src": "11459:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3970,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "11459:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3973,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "11482:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3989,
												"src": "11477:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3972,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "11477:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3975,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "11491:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 3989,
												"src": "11486:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3974,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "11486:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "11458:36:12"
									},
									"returnParameters": {
										"id": 3977,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "11509:0:12"
									},
									"scope": 10618,
									"src": "11446:148:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4008,
										"nodeType": "Block",
										"src": "11663:88:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c626f6f6c2c6164647265737329",
																	"id": 4001,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "11707:26:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_932bbb385d479707ff387e3bb2d8968a7b4115e938510c531aa15b50507fc27f",
																		"typeString": "literal_string \"log(string,bool,address)\""
																	},
																	"value": "log(string,bool,address)"
																},
																{
																	"id": 4002,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3991,
																	"src": "11735:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 4003,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3993,
																	"src": "11739:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 4004,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 3995,
																	"src": "11743:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_932bbb385d479707ff387e3bb2d8968a7b4115e938510c531aa15b50507fc27f",
																		"typeString": "literal_string \"log(string,bool,address)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 3999,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "11683:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4000,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "11683:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4005,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "11683:63:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 3998,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "11667:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4006,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "11667:80:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4007,
												"nodeType": "ExpressionStatement",
												"src": "11667:80:12"
											}
										]
									},
									"id": 4009,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "11606:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 3996,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 3991,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "11624:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4009,
												"src": "11610:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 3990,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "11610:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3993,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "11633:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4009,
												"src": "11628:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 3992,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "11628:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 3995,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "11645:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4009,
												"src": "11637:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 3994,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "11637:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "11609:39:12"
									},
									"returnParameters": {
										"id": 3997,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "11663:0:12"
									},
									"scope": 10618,
									"src": "11597:154:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4028,
										"nodeType": "Block",
										"src": "11820:88:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c616464726573732c75696e7429",
																	"id": 4021,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "11864:26:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_07c81217b9c48682941345dce61bbd916a12dd883642c9077891090a71c93a13",
																		"typeString": "literal_string \"log(string,address,uint)\""
																	},
																	"value": "log(string,address,uint)"
																},
																{
																	"id": 4022,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4011,
																	"src": "11892:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 4023,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4013,
																	"src": "11896:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 4024,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4015,
																	"src": "11900:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_07c81217b9c48682941345dce61bbd916a12dd883642c9077891090a71c93a13",
																		"typeString": "literal_string \"log(string,address,uint)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 4019,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "11840:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4020,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "11840:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4025,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "11840:63:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4018,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "11824:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4026,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "11824:80:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4027,
												"nodeType": "ExpressionStatement",
												"src": "11824:80:12"
											}
										]
									},
									"id": 4029,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "11763:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4016,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4011,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "11781:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4029,
												"src": "11767:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 4010,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "11767:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4013,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "11793:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4029,
												"src": "11785:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4012,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "11785:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4015,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "11802:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4029,
												"src": "11797:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4014,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "11797:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "11766:39:12"
									},
									"returnParameters": {
										"id": 4017,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "11820:0:12"
									},
									"scope": 10618,
									"src": "11754:154:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4048,
										"nodeType": "Block",
										"src": "11986:90:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c616464726573732c737472696e6729",
																	"id": 4041,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "12030:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_e0e9ad4f87059a51cce5555e129ca819f7e5d52e9c65a4e175882207ee47d634",
																		"typeString": "literal_string \"log(string,address,string)\""
																	},
																	"value": "log(string,address,string)"
																},
																{
																	"id": 4042,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4031,
																	"src": "12060:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 4043,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4033,
																	"src": "12064:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 4044,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4035,
																	"src": "12068:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_e0e9ad4f87059a51cce5555e129ca819f7e5d52e9c65a4e175882207ee47d634",
																		"typeString": "literal_string \"log(string,address,string)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 4039,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "12006:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4040,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "12006:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4045,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "12006:65:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4038,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "11990:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4046,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "11990:82:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4047,
												"nodeType": "ExpressionStatement",
												"src": "11990:82:12"
											}
										]
									},
									"id": 4049,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "11920:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4036,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4031,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "11938:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4049,
												"src": "11924:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 4030,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "11924:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4033,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "11950:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4049,
												"src": "11942:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4032,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "11942:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4035,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "11968:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4049,
												"src": "11954:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 4034,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "11954:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "11923:48:12"
									},
									"returnParameters": {
										"id": 4037,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "11986:0:12"
									},
									"scope": 10618,
									"src": "11911:165:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4068,
										"nodeType": "Block",
										"src": "12145:88:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c616464726573732c626f6f6c29",
																	"id": 4061,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "12189:26:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_c91d5ed4480e0b3323f998bcee9594aa98173c7324b015a4713a7c8429afd0b8",
																		"typeString": "literal_string \"log(string,address,bool)\""
																	},
																	"value": "log(string,address,bool)"
																},
																{
																	"id": 4062,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4051,
																	"src": "12217:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 4063,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4053,
																	"src": "12221:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 4064,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4055,
																	"src": "12225:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_c91d5ed4480e0b3323f998bcee9594aa98173c7324b015a4713a7c8429afd0b8",
																		"typeString": "literal_string \"log(string,address,bool)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 4059,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "12165:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4060,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "12165:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4065,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "12165:63:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4058,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "12149:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4066,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "12149:80:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4067,
												"nodeType": "ExpressionStatement",
												"src": "12149:80:12"
											}
										]
									},
									"id": 4069,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "12088:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4056,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4051,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "12106:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4069,
												"src": "12092:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 4050,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "12092:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4053,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "12118:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4069,
												"src": "12110:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4052,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "12110:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4055,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "12127:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4069,
												"src": "12122:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4054,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "12122:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "12091:39:12"
									},
									"returnParameters": {
										"id": 4057,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "12145:0:12"
									},
									"scope": 10618,
									"src": "12079:154:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4088,
										"nodeType": "Block",
										"src": "12305:91:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c616464726573732c6164647265737329",
																	"id": 4081,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "12349:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_fcec75e0902c9d61eded5d9f2eed16d5b0f2cd255fe6fa77733f59e1063823e8",
																		"typeString": "literal_string \"log(string,address,address)\""
																	},
																	"value": "log(string,address,address)"
																},
																{
																	"id": 4082,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4071,
																	"src": "12380:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 4083,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4073,
																	"src": "12384:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 4084,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4075,
																	"src": "12388:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_fcec75e0902c9d61eded5d9f2eed16d5b0f2cd255fe6fa77733f59e1063823e8",
																		"typeString": "literal_string \"log(string,address,address)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 4079,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "12325:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4080,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "12325:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4085,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "12325:66:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4078,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "12309:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4086,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "12309:83:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4087,
												"nodeType": "ExpressionStatement",
												"src": "12309:83:12"
											}
										]
									},
									"id": 4089,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "12245:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4076,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4071,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "12263:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4089,
												"src": "12249:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 4070,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "12249:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4073,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "12275:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4089,
												"src": "12267:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4072,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "12267:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4075,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "12287:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4089,
												"src": "12279:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4074,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "12279:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "12248:42:12"
									},
									"returnParameters": {
										"id": 4077,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "12305:0:12"
									},
									"scope": 10618,
									"src": "12236:160:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4108,
										"nodeType": "Block",
										"src": "12453:83:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c75696e742c75696e7429",
																	"id": 4101,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "12497:21:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_3b5c03e061c862e366b964ce1ef4845511d610b73a90137eb2b2afa3099b1a4e",
																		"typeString": "literal_string \"log(bool,uint,uint)\""
																	},
																	"value": "log(bool,uint,uint)"
																},
																{
																	"id": 4102,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4091,
																	"src": "12520:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 4103,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4093,
																	"src": "12524:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4104,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4095,
																	"src": "12528:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_3b5c03e061c862e366b964ce1ef4845511d610b73a90137eb2b2afa3099b1a4e",
																		"typeString": "literal_string \"log(bool,uint,uint)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 4099,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "12473:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4100,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "12473:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4105,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "12473:58:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4098,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "12457:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4106,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "12457:75:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4107,
												"nodeType": "ExpressionStatement",
												"src": "12457:75:12"
											}
										]
									},
									"id": 4109,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "12408:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4096,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4091,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "12417:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4109,
												"src": "12412:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4090,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "12412:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4093,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "12426:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4109,
												"src": "12421:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4092,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "12421:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4095,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "12435:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4109,
												"src": "12430:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4094,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "12430:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "12411:27:12"
									},
									"returnParameters": {
										"id": 4097,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "12453:0:12"
									},
									"scope": 10618,
									"src": "12399:137:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4128,
										"nodeType": "Block",
										"src": "12602:85:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c75696e742c737472696e6729",
																	"id": 4121,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "12646:23:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_c8397eb0de34bc3ec2853d625c1649c0c0abb20941c30ba650cc738adade018f",
																		"typeString": "literal_string \"log(bool,uint,string)\""
																	},
																	"value": "log(bool,uint,string)"
																},
																{
																	"id": 4122,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4111,
																	"src": "12671:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 4123,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4113,
																	"src": "12675:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4124,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4115,
																	"src": "12679:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_c8397eb0de34bc3ec2853d625c1649c0c0abb20941c30ba650cc738adade018f",
																		"typeString": "literal_string \"log(bool,uint,string)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 4119,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "12622:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4120,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "12622:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4125,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "12622:60:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4118,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "12606:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4126,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "12606:77:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4127,
												"nodeType": "ExpressionStatement",
												"src": "12606:77:12"
											}
										]
									},
									"id": 4129,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "12548:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4116,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4111,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "12557:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4129,
												"src": "12552:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4110,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "12552:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4113,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "12566:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4129,
												"src": "12561:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4112,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "12561:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4115,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "12584:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4129,
												"src": "12570:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 4114,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "12570:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "12551:36:12"
									},
									"returnParameters": {
										"id": 4117,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "12602:0:12"
									},
									"scope": 10618,
									"src": "12539:148:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4148,
										"nodeType": "Block",
										"src": "12744:83:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c75696e742c626f6f6c29",
																	"id": 4141,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "12788:21:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_1badc9eb6813ec769c33a3918f278565b7e2e9ed34d2ae2d50d951cc0f602ae0",
																		"typeString": "literal_string \"log(bool,uint,bool)\""
																	},
																	"value": "log(bool,uint,bool)"
																},
																{
																	"id": 4142,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4131,
																	"src": "12811:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 4143,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4133,
																	"src": "12815:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4144,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4135,
																	"src": "12819:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_1badc9eb6813ec769c33a3918f278565b7e2e9ed34d2ae2d50d951cc0f602ae0",
																		"typeString": "literal_string \"log(bool,uint,bool)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 4139,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "12764:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4140,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "12764:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4145,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "12764:58:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4138,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "12748:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4146,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "12748:75:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4147,
												"nodeType": "ExpressionStatement",
												"src": "12748:75:12"
											}
										]
									},
									"id": 4149,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "12699:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4136,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4131,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "12708:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4149,
												"src": "12703:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4130,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "12703:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4133,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "12717:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4149,
												"src": "12712:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4132,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "12712:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4135,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "12726:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4149,
												"src": "12721:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4134,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "12721:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "12702:27:12"
									},
									"returnParameters": {
										"id": 4137,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "12744:0:12"
									},
									"scope": 10618,
									"src": "12690:137:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4168,
										"nodeType": "Block",
										"src": "12887:86:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c75696e742c6164647265737329",
																	"id": 4161,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "12931:24:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_c4d23507f52009aec241457bf26dc51305bd2896aa08c5b47f04709554b39440",
																		"typeString": "literal_string \"log(bool,uint,address)\""
																	},
																	"value": "log(bool,uint,address)"
																},
																{
																	"id": 4162,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4151,
																	"src": "12957:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 4163,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4153,
																	"src": "12961:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4164,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4155,
																	"src": "12965:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_c4d23507f52009aec241457bf26dc51305bd2896aa08c5b47f04709554b39440",
																		"typeString": "literal_string \"log(bool,uint,address)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 4159,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "12907:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4160,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "12907:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4165,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "12907:61:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4158,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "12891:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4166,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "12891:78:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4167,
												"nodeType": "ExpressionStatement",
												"src": "12891:78:12"
											}
										]
									},
									"id": 4169,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "12839:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4156,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4151,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "12848:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4169,
												"src": "12843:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4150,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "12843:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4153,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "12857:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4169,
												"src": "12852:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4152,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "12852:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4155,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "12869:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4169,
												"src": "12861:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4154,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "12861:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "12842:30:12"
									},
									"returnParameters": {
										"id": 4157,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "12887:0:12"
									},
									"scope": 10618,
									"src": "12830:143:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4188,
										"nodeType": "Block",
										"src": "13039:85:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c737472696e672c75696e7429",
																	"id": 4181,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "13083:23:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_c0382aac3e9b237c9c8f246cdb8152d44351aaafa72d99e3640be65f754ac807",
																		"typeString": "literal_string \"log(bool,string,uint)\""
																	},
																	"value": "log(bool,string,uint)"
																},
																{
																	"id": 4182,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4171,
																	"src": "13108:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 4183,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4173,
																	"src": "13112:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 4184,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4175,
																	"src": "13116:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_c0382aac3e9b237c9c8f246cdb8152d44351aaafa72d99e3640be65f754ac807",
																		"typeString": "literal_string \"log(bool,string,uint)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 4179,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "13059:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4180,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "13059:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4185,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "13059:60:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4178,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "13043:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4186,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "13043:77:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4187,
												"nodeType": "ExpressionStatement",
												"src": "13043:77:12"
											}
										]
									},
									"id": 4189,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "12985:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4176,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4171,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "12994:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4189,
												"src": "12989:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4170,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "12989:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4173,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "13012:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4189,
												"src": "12998:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 4172,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "12998:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4175,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "13021:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4189,
												"src": "13016:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4174,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "13016:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "12988:36:12"
									},
									"returnParameters": {
										"id": 4177,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "13039:0:12"
									},
									"scope": 10618,
									"src": "12976:148:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4208,
										"nodeType": "Block",
										"src": "13199:87:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c737472696e672c737472696e6729",
																	"id": 4201,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "13243:25:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_b076847f8b4aee0cfbf46ec501532f9f3c85a581aff135287ff8e917c0a39102",
																		"typeString": "literal_string \"log(bool,string,string)\""
																	},
																	"value": "log(bool,string,string)"
																},
																{
																	"id": 4202,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4191,
																	"src": "13270:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 4203,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4193,
																	"src": "13274:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 4204,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4195,
																	"src": "13278:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_b076847f8b4aee0cfbf46ec501532f9f3c85a581aff135287ff8e917c0a39102",
																		"typeString": "literal_string \"log(bool,string,string)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 4199,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "13219:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4200,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "13219:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4205,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "13219:62:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4198,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "13203:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4206,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "13203:79:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4207,
												"nodeType": "ExpressionStatement",
												"src": "13203:79:12"
											}
										]
									},
									"id": 4209,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "13136:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4196,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4191,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "13145:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4209,
												"src": "13140:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4190,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "13140:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4193,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "13163:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4209,
												"src": "13149:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 4192,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "13149:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4195,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "13181:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4209,
												"src": "13167:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 4194,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "13167:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "13139:45:12"
									},
									"returnParameters": {
										"id": 4197,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "13199:0:12"
									},
									"scope": 10618,
									"src": "13127:159:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4228,
										"nodeType": "Block",
										"src": "13352:85:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c737472696e672c626f6f6c29",
																	"id": 4221,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "13396:23:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_dbb4c2477dacc98e0e5b96fd6ca6bf0ae1f82dd042439d9f53f8d963bef43eaa",
																		"typeString": "literal_string \"log(bool,string,bool)\""
																	},
																	"value": "log(bool,string,bool)"
																},
																{
																	"id": 4222,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4211,
																	"src": "13421:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 4223,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4213,
																	"src": "13425:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 4224,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4215,
																	"src": "13429:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_dbb4c2477dacc98e0e5b96fd6ca6bf0ae1f82dd042439d9f53f8d963bef43eaa",
																		"typeString": "literal_string \"log(bool,string,bool)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 4219,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "13372:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4220,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "13372:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4225,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "13372:60:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4218,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "13356:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4226,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "13356:77:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4227,
												"nodeType": "ExpressionStatement",
												"src": "13356:77:12"
											}
										]
									},
									"id": 4229,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "13298:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4216,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4211,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "13307:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4229,
												"src": "13302:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4210,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "13302:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4213,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "13325:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4229,
												"src": "13311:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 4212,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "13311:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4215,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "13334:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4229,
												"src": "13329:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4214,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "13329:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "13301:36:12"
									},
									"returnParameters": {
										"id": 4217,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "13352:0:12"
									},
									"scope": 10618,
									"src": "13289:148:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4248,
										"nodeType": "Block",
										"src": "13506:88:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c737472696e672c6164647265737329",
																	"id": 4241,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "13550:26:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_9591b953c9b1d0af9d1e3bc0f6ea9aa5b0e1af8c702f85b36e21b9b2d7e4da79",
																		"typeString": "literal_string \"log(bool,string,address)\""
																	},
																	"value": "log(bool,string,address)"
																},
																{
																	"id": 4242,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4231,
																	"src": "13578:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 4243,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4233,
																	"src": "13582:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 4244,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4235,
																	"src": "13586:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_9591b953c9b1d0af9d1e3bc0f6ea9aa5b0e1af8c702f85b36e21b9b2d7e4da79",
																		"typeString": "literal_string \"log(bool,string,address)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 4239,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "13526:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4240,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "13526:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4245,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "13526:63:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4238,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "13510:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4246,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "13510:80:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4247,
												"nodeType": "ExpressionStatement",
												"src": "13510:80:12"
											}
										]
									},
									"id": 4249,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "13449:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4236,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4231,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "13458:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4249,
												"src": "13453:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4230,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "13453:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4233,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "13476:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4249,
												"src": "13462:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 4232,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "13462:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4235,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "13488:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4249,
												"src": "13480:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4234,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "13480:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "13452:39:12"
									},
									"returnParameters": {
										"id": 4237,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "13506:0:12"
									},
									"scope": 10618,
									"src": "13440:154:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4268,
										"nodeType": "Block",
										"src": "13651:83:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c626f6f6c2c75696e7429",
																	"id": 4261,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "13695:21:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_b01365bbae43503e22260bcc9cf23ffef37ffc9f6c1580737fe2489955065877",
																		"typeString": "literal_string \"log(bool,bool,uint)\""
																	},
																	"value": "log(bool,bool,uint)"
																},
																{
																	"id": 4262,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4251,
																	"src": "13718:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 4263,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4253,
																	"src": "13722:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 4264,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4255,
																	"src": "13726:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_b01365bbae43503e22260bcc9cf23ffef37ffc9f6c1580737fe2489955065877",
																		"typeString": "literal_string \"log(bool,bool,uint)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 4259,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "13671:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4260,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "13671:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4265,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "13671:58:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4258,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "13655:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4266,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "13655:75:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4267,
												"nodeType": "ExpressionStatement",
												"src": "13655:75:12"
											}
										]
									},
									"id": 4269,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "13606:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4256,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4251,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "13615:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4269,
												"src": "13610:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4250,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "13610:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4253,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "13624:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4269,
												"src": "13619:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4252,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "13619:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4255,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "13633:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4269,
												"src": "13628:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4254,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "13628:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "13609:27:12"
									},
									"returnParameters": {
										"id": 4257,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "13651:0:12"
									},
									"scope": 10618,
									"src": "13597:137:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4288,
										"nodeType": "Block",
										"src": "13800:85:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c626f6f6c2c737472696e6729",
																	"id": 4281,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "13844:23:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_2555fa465662416fc443b21c515f245dc550a66f7c658773f7bd7ad91c82f2cc",
																		"typeString": "literal_string \"log(bool,bool,string)\""
																	},
																	"value": "log(bool,bool,string)"
																},
																{
																	"id": 4282,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4271,
																	"src": "13869:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 4283,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4273,
																	"src": "13873:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 4284,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4275,
																	"src": "13877:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_2555fa465662416fc443b21c515f245dc550a66f7c658773f7bd7ad91c82f2cc",
																		"typeString": "literal_string \"log(bool,bool,string)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 4279,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "13820:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4280,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "13820:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4285,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "13820:60:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4278,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "13804:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4286,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "13804:77:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4287,
												"nodeType": "ExpressionStatement",
												"src": "13804:77:12"
											}
										]
									},
									"id": 4289,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "13746:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4276,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4271,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "13755:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4289,
												"src": "13750:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4270,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "13750:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4273,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "13764:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4289,
												"src": "13759:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4272,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "13759:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4275,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "13782:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4289,
												"src": "13768:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 4274,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "13768:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "13749:36:12"
									},
									"returnParameters": {
										"id": 4277,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "13800:0:12"
									},
									"scope": 10618,
									"src": "13737:148:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4308,
										"nodeType": "Block",
										"src": "13942:83:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c626f6f6c2c626f6f6c29",
																	"id": 4301,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "13986:21:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_50709698278bb02f656e4ac53a2ae8ef0ec4064d340360a5fa4d933e9a742590",
																		"typeString": "literal_string \"log(bool,bool,bool)\""
																	},
																	"value": "log(bool,bool,bool)"
																},
																{
																	"id": 4302,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4291,
																	"src": "14009:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 4303,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4293,
																	"src": "14013:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 4304,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4295,
																	"src": "14017:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_50709698278bb02f656e4ac53a2ae8ef0ec4064d340360a5fa4d933e9a742590",
																		"typeString": "literal_string \"log(bool,bool,bool)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 4299,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "13962:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4300,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "13962:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4305,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "13962:58:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4298,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "13946:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4306,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "13946:75:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4307,
												"nodeType": "ExpressionStatement",
												"src": "13946:75:12"
											}
										]
									},
									"id": 4309,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "13897:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4296,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4291,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "13906:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4309,
												"src": "13901:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4290,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "13901:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4293,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "13915:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4309,
												"src": "13910:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4292,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "13910:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4295,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "13924:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4309,
												"src": "13919:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4294,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "13919:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "13900:27:12"
									},
									"returnParameters": {
										"id": 4297,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "13942:0:12"
									},
									"scope": 10618,
									"src": "13888:137:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4328,
										"nodeType": "Block",
										"src": "14085:86:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c626f6f6c2c6164647265737329",
																	"id": 4321,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "14129:24:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_1078f68da6ddbbe80f829fe8d54d1f2c6347e1ee4ec5a2a7a3a330ada9eccf81",
																		"typeString": "literal_string \"log(bool,bool,address)\""
																	},
																	"value": "log(bool,bool,address)"
																},
																{
																	"id": 4322,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4311,
																	"src": "14155:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 4323,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4313,
																	"src": "14159:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 4324,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4315,
																	"src": "14163:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_1078f68da6ddbbe80f829fe8d54d1f2c6347e1ee4ec5a2a7a3a330ada9eccf81",
																		"typeString": "literal_string \"log(bool,bool,address)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 4319,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "14105:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4320,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "14105:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4325,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "14105:61:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4318,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "14089:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4326,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "14089:78:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4327,
												"nodeType": "ExpressionStatement",
												"src": "14089:78:12"
											}
										]
									},
									"id": 4329,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "14037:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4316,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4311,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "14046:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4329,
												"src": "14041:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4310,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "14041:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4313,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "14055:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4329,
												"src": "14050:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4312,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "14050:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4315,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "14067:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4329,
												"src": "14059:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4314,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "14059:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "14040:30:12"
									},
									"returnParameters": {
										"id": 4317,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "14085:0:12"
									},
									"scope": 10618,
									"src": "14028:143:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4348,
										"nodeType": "Block",
										"src": "14231:86:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c616464726573732c75696e7429",
																	"id": 4341,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "14275:24:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_eb704bafbd89369a907d48394b6acdacf482ae42cc2aaedd1cc37e89b4054b3d",
																		"typeString": "literal_string \"log(bool,address,uint)\""
																	},
																	"value": "log(bool,address,uint)"
																},
																{
																	"id": 4342,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4331,
																	"src": "14301:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 4343,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4333,
																	"src": "14305:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 4344,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4335,
																	"src": "14309:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_eb704bafbd89369a907d48394b6acdacf482ae42cc2aaedd1cc37e89b4054b3d",
																		"typeString": "literal_string \"log(bool,address,uint)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 4339,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "14251:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4340,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "14251:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4345,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "14251:61:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4338,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "14235:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4346,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "14235:78:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4347,
												"nodeType": "ExpressionStatement",
												"src": "14235:78:12"
											}
										]
									},
									"id": 4349,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "14183:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4336,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4331,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "14192:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4349,
												"src": "14187:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4330,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "14187:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4333,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "14204:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4349,
												"src": "14196:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4332,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "14196:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4335,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "14213:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4349,
												"src": "14208:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4334,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "14208:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "14186:30:12"
									},
									"returnParameters": {
										"id": 4337,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "14231:0:12"
									},
									"scope": 10618,
									"src": "14174:143:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4368,
										"nodeType": "Block",
										"src": "14386:88:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c616464726573732c737472696e6729",
																	"id": 4361,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "14430:26:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_de9a927090b15ed84eefc0c471675a23ce67fd75011b1652fe17ca2dd0dcd06d",
																		"typeString": "literal_string \"log(bool,address,string)\""
																	},
																	"value": "log(bool,address,string)"
																},
																{
																	"id": 4362,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4351,
																	"src": "14458:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 4363,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4353,
																	"src": "14462:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 4364,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4355,
																	"src": "14466:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_de9a927090b15ed84eefc0c471675a23ce67fd75011b1652fe17ca2dd0dcd06d",
																		"typeString": "literal_string \"log(bool,address,string)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 4359,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "14406:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4360,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "14406:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4365,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "14406:63:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4358,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "14390:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4366,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "14390:80:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4367,
												"nodeType": "ExpressionStatement",
												"src": "14390:80:12"
											}
										]
									},
									"id": 4369,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "14329:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4356,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4351,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "14338:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4369,
												"src": "14333:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4350,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "14333:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4353,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "14350:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4369,
												"src": "14342:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4352,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "14342:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4355,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "14368:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4369,
												"src": "14354:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 4354,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "14354:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "14332:39:12"
									},
									"returnParameters": {
										"id": 4357,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "14386:0:12"
									},
									"scope": 10618,
									"src": "14320:154:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4388,
										"nodeType": "Block",
										"src": "14534:86:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c616464726573732c626f6f6c29",
																	"id": 4381,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "14578:24:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_18c9c746c9d0e38e4dc234ee76e678bbaa4e473eca3dce0969637d7f01e4a908",
																		"typeString": "literal_string \"log(bool,address,bool)\""
																	},
																	"value": "log(bool,address,bool)"
																},
																{
																	"id": 4382,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4371,
																	"src": "14604:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 4383,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4373,
																	"src": "14608:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 4384,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4375,
																	"src": "14612:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_18c9c746c9d0e38e4dc234ee76e678bbaa4e473eca3dce0969637d7f01e4a908",
																		"typeString": "literal_string \"log(bool,address,bool)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 4379,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "14554:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4380,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "14554:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4385,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "14554:61:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4378,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "14538:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4386,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "14538:78:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4387,
												"nodeType": "ExpressionStatement",
												"src": "14538:78:12"
											}
										]
									},
									"id": 4389,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "14486:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4376,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4371,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "14495:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4389,
												"src": "14490:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4370,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "14490:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4373,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "14507:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4389,
												"src": "14499:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4372,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "14499:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4375,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "14516:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4389,
												"src": "14511:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4374,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "14511:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "14489:30:12"
									},
									"returnParameters": {
										"id": 4377,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "14534:0:12"
									},
									"scope": 10618,
									"src": "14477:143:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4408,
										"nodeType": "Block",
										"src": "14683:89:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c616464726573732c6164647265737329",
																	"id": 4401,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "14727:27:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_d2763667477f08a6a3f8ce84e1cc1aeb5e67ee2996f5f36e8939da2b8b8f0265",
																		"typeString": "literal_string \"log(bool,address,address)\""
																	},
																	"value": "log(bool,address,address)"
																},
																{
																	"id": 4402,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4391,
																	"src": "14756:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 4403,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4393,
																	"src": "14760:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 4404,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4395,
																	"src": "14764:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_d2763667477f08a6a3f8ce84e1cc1aeb5e67ee2996f5f36e8939da2b8b8f0265",
																		"typeString": "literal_string \"log(bool,address,address)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 4399,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "14703:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4400,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "14703:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4405,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "14703:64:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4398,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "14687:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4406,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "14687:81:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4407,
												"nodeType": "ExpressionStatement",
												"src": "14687:81:12"
											}
										]
									},
									"id": 4409,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "14632:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4396,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4391,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "14641:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4409,
												"src": "14636:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4390,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "14636:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4393,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "14653:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4409,
												"src": "14645:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4392,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "14645:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4395,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "14665:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4409,
												"src": "14657:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4394,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "14657:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "14635:33:12"
									},
									"returnParameters": {
										"id": 4397,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "14683:0:12"
									},
									"scope": 10618,
									"src": "14623:149:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4428,
										"nodeType": "Block",
										"src": "14832:86:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c75696e742c75696e7429",
																	"id": 4421,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "14876:24:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_8786135eae1a8e4736031518026bd3bd30886c3cc8d3e8bdedd6faea426de5ea",
																		"typeString": "literal_string \"log(address,uint,uint)\""
																	},
																	"value": "log(address,uint,uint)"
																},
																{
																	"id": 4422,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4411,
																	"src": "14902:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 4423,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4413,
																	"src": "14906:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4424,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4415,
																	"src": "14910:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_8786135eae1a8e4736031518026bd3bd30886c3cc8d3e8bdedd6faea426de5ea",
																		"typeString": "literal_string \"log(address,uint,uint)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 4419,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "14852:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4420,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "14852:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4425,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "14852:61:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4418,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "14836:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4426,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "14836:78:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4427,
												"nodeType": "ExpressionStatement",
												"src": "14836:78:12"
											}
										]
									},
									"id": 4429,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "14784:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4416,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4411,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "14796:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4429,
												"src": "14788:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4410,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "14788:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4413,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "14805:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4429,
												"src": "14800:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4412,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "14800:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4415,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "14814:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4429,
												"src": "14809:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4414,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "14809:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "14787:30:12"
									},
									"returnParameters": {
										"id": 4417,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "14832:0:12"
									},
									"scope": 10618,
									"src": "14775:143:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4448,
										"nodeType": "Block",
										"src": "14987:88:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c75696e742c737472696e6729",
																	"id": 4441,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "15031:26:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_baf968498a2094de432bd16841b992056c14db9f313a6b44c3156c2b5f1dc2b4",
																		"typeString": "literal_string \"log(address,uint,string)\""
																	},
																	"value": "log(address,uint,string)"
																},
																{
																	"id": 4442,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4431,
																	"src": "15059:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 4443,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4433,
																	"src": "15063:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4444,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4435,
																	"src": "15067:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_baf968498a2094de432bd16841b992056c14db9f313a6b44c3156c2b5f1dc2b4",
																		"typeString": "literal_string \"log(address,uint,string)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 4439,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "15007:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4440,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "15007:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4445,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "15007:63:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4438,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "14991:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4446,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "14991:80:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4447,
												"nodeType": "ExpressionStatement",
												"src": "14991:80:12"
											}
										]
									},
									"id": 4449,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "14930:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4436,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4431,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "14942:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4449,
												"src": "14934:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4430,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "14934:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4433,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "14951:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4449,
												"src": "14946:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4432,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "14946:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4435,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "14969:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4449,
												"src": "14955:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 4434,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "14955:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "14933:39:12"
									},
									"returnParameters": {
										"id": 4437,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "14987:0:12"
									},
									"scope": 10618,
									"src": "14921:154:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4468,
										"nodeType": "Block",
										"src": "15135:86:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c75696e742c626f6f6c29",
																	"id": 4461,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "15179:24:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_e54ae1445cd51f09e801fc5885e33c709102997417d3d9b6f543f7724468b4e4",
																		"typeString": "literal_string \"log(address,uint,bool)\""
																	},
																	"value": "log(address,uint,bool)"
																},
																{
																	"id": 4462,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4451,
																	"src": "15205:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 4463,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4453,
																	"src": "15209:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4464,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4455,
																	"src": "15213:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_e54ae1445cd51f09e801fc5885e33c709102997417d3d9b6f543f7724468b4e4",
																		"typeString": "literal_string \"log(address,uint,bool)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 4459,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "15155:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4460,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "15155:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4465,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "15155:61:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4458,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "15139:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4466,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "15139:78:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4467,
												"nodeType": "ExpressionStatement",
												"src": "15139:78:12"
											}
										]
									},
									"id": 4469,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "15087:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4456,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4451,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "15099:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4469,
												"src": "15091:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4450,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "15091:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4453,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "15108:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4469,
												"src": "15103:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4452,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "15103:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4455,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "15117:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4469,
												"src": "15112:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4454,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "15112:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "15090:30:12"
									},
									"returnParameters": {
										"id": 4457,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "15135:0:12"
									},
									"scope": 10618,
									"src": "15078:143:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4488,
										"nodeType": "Block",
										"src": "15284:89:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c75696e742c6164647265737329",
																	"id": 4481,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "15328:27:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_97eca3948a309251ff02cc4a3cb96f84ac4b6b4bdc56e86c9f0131c9b70c6259",
																		"typeString": "literal_string \"log(address,uint,address)\""
																	},
																	"value": "log(address,uint,address)"
																},
																{
																	"id": 4482,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4471,
																	"src": "15357:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 4483,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4473,
																	"src": "15361:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4484,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4475,
																	"src": "15365:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_97eca3948a309251ff02cc4a3cb96f84ac4b6b4bdc56e86c9f0131c9b70c6259",
																		"typeString": "literal_string \"log(address,uint,address)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 4479,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "15304:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4480,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "15304:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4485,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "15304:64:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4478,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "15288:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4486,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "15288:81:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4487,
												"nodeType": "ExpressionStatement",
												"src": "15288:81:12"
											}
										]
									},
									"id": 4489,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "15233:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4476,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4471,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "15245:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4489,
												"src": "15237:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4470,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "15237:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4473,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "15254:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4489,
												"src": "15249:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4472,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "15249:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4475,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "15266:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4489,
												"src": "15258:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4474,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "15258:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "15236:33:12"
									},
									"returnParameters": {
										"id": 4477,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "15284:0:12"
									},
									"scope": 10618,
									"src": "15224:149:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4508,
										"nodeType": "Block",
										"src": "15442:88:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c737472696e672c75696e7429",
																	"id": 4501,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "15486:26:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_1cdaf28a630ff01c83e1629295cea6793da60638603e831a5c07be53dbee3597",
																		"typeString": "literal_string \"log(address,string,uint)\""
																	},
																	"value": "log(address,string,uint)"
																},
																{
																	"id": 4502,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4491,
																	"src": "15514:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 4503,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4493,
																	"src": "15518:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 4504,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4495,
																	"src": "15522:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_1cdaf28a630ff01c83e1629295cea6793da60638603e831a5c07be53dbee3597",
																		"typeString": "literal_string \"log(address,string,uint)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 4499,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "15462:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4500,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "15462:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4505,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "15462:63:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4498,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "15446:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4506,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "15446:80:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4507,
												"nodeType": "ExpressionStatement",
												"src": "15446:80:12"
											}
										]
									},
									"id": 4509,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "15385:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4496,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4491,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "15397:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4509,
												"src": "15389:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4490,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "15389:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4493,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "15415:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4509,
												"src": "15401:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 4492,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "15401:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4495,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "15424:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4509,
												"src": "15419:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4494,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "15419:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "15388:39:12"
									},
									"returnParameters": {
										"id": 4497,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "15442:0:12"
									},
									"scope": 10618,
									"src": "15376:154:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4528,
										"nodeType": "Block",
										"src": "15608:90:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c737472696e672c737472696e6729",
																	"id": 4521,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "15652:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_fb77226597c11cd0c52945168d7176a06b9af41edea6a51823db111f35573158",
																		"typeString": "literal_string \"log(address,string,string)\""
																	},
																	"value": "log(address,string,string)"
																},
																{
																	"id": 4522,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4511,
																	"src": "15682:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 4523,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4513,
																	"src": "15686:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 4524,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4515,
																	"src": "15690:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_fb77226597c11cd0c52945168d7176a06b9af41edea6a51823db111f35573158",
																		"typeString": "literal_string \"log(address,string,string)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 4519,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "15628:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4520,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "15628:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4525,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "15628:65:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4518,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "15612:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4526,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "15612:82:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4527,
												"nodeType": "ExpressionStatement",
												"src": "15612:82:12"
											}
										]
									},
									"id": 4529,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "15542:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4516,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4511,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "15554:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4529,
												"src": "15546:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4510,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "15546:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4513,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "15572:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4529,
												"src": "15558:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 4512,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "15558:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4515,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "15590:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4529,
												"src": "15576:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 4514,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "15576:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "15545:48:12"
									},
									"returnParameters": {
										"id": 4517,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "15608:0:12"
									},
									"scope": 10618,
									"src": "15533:165:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4548,
										"nodeType": "Block",
										"src": "15767:88:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c737472696e672c626f6f6c29",
																	"id": 4541,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "15811:26:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_cf020fb14f49566c5748de1f455c699a10a4ed1d7cf32f9adb28d22878df1b96",
																		"typeString": "literal_string \"log(address,string,bool)\""
																	},
																	"value": "log(address,string,bool)"
																},
																{
																	"id": 4542,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4531,
																	"src": "15839:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 4543,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4533,
																	"src": "15843:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 4544,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4535,
																	"src": "15847:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_cf020fb14f49566c5748de1f455c699a10a4ed1d7cf32f9adb28d22878df1b96",
																		"typeString": "literal_string \"log(address,string,bool)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 4539,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "15787:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4540,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "15787:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4545,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "15787:63:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4538,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "15771:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4546,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "15771:80:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4547,
												"nodeType": "ExpressionStatement",
												"src": "15771:80:12"
											}
										]
									},
									"id": 4549,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "15710:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4536,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4531,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "15722:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4549,
												"src": "15714:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4530,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "15714:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4533,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "15740:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4549,
												"src": "15726:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 4532,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "15726:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4535,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "15749:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4549,
												"src": "15744:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4534,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "15744:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "15713:39:12"
									},
									"returnParameters": {
										"id": 4537,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "15767:0:12"
									},
									"scope": 10618,
									"src": "15701:154:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4568,
										"nodeType": "Block",
										"src": "15927:91:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c737472696e672c6164647265737329",
																	"id": 4561,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "15971:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_f08744e82875525f1ef885a48453f58e96cac98a5d32bd6d8c38e4977aede231",
																		"typeString": "literal_string \"log(address,string,address)\""
																	},
																	"value": "log(address,string,address)"
																},
																{
																	"id": 4562,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4551,
																	"src": "16002:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 4563,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4553,
																	"src": "16006:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 4564,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4555,
																	"src": "16010:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_f08744e82875525f1ef885a48453f58e96cac98a5d32bd6d8c38e4977aede231",
																		"typeString": "literal_string \"log(address,string,address)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 4559,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "15947:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4560,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "15947:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4565,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "15947:66:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4558,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "15931:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4566,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "15931:83:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4567,
												"nodeType": "ExpressionStatement",
												"src": "15931:83:12"
											}
										]
									},
									"id": 4569,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "15867:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4556,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4551,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "15879:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4569,
												"src": "15871:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4550,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "15871:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4553,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "15897:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4569,
												"src": "15883:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 4552,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "15883:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4555,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "15909:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4569,
												"src": "15901:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4554,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "15901:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "15870:42:12"
									},
									"returnParameters": {
										"id": 4557,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "15927:0:12"
									},
									"scope": 10618,
									"src": "15858:160:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4588,
										"nodeType": "Block",
										"src": "16078:86:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c626f6f6c2c75696e7429",
																	"id": 4581,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "16122:24:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_2c468d157d9cb3bd4f3bc977d201b067de313f8e774b0377d5c5b2b5c9426095",
																		"typeString": "literal_string \"log(address,bool,uint)\""
																	},
																	"value": "log(address,bool,uint)"
																},
																{
																	"id": 4582,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4571,
																	"src": "16148:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 4583,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4573,
																	"src": "16152:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 4584,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4575,
																	"src": "16156:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_2c468d157d9cb3bd4f3bc977d201b067de313f8e774b0377d5c5b2b5c9426095",
																		"typeString": "literal_string \"log(address,bool,uint)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 4579,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "16098:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4580,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "16098:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4585,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "16098:61:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4578,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "16082:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4586,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "16082:78:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4587,
												"nodeType": "ExpressionStatement",
												"src": "16082:78:12"
											}
										]
									},
									"id": 4589,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "16030:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4576,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4571,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "16042:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4589,
												"src": "16034:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4570,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "16034:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4573,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "16051:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4589,
												"src": "16046:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4572,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "16046:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4575,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "16060:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4589,
												"src": "16055:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4574,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "16055:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "16033:30:12"
									},
									"returnParameters": {
										"id": 4577,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "16078:0:12"
									},
									"scope": 10618,
									"src": "16021:143:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4608,
										"nodeType": "Block",
										"src": "16233:88:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c626f6f6c2c737472696e6729",
																	"id": 4601,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "16277:26:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_212255cc5ff4a2d867f69451c60f51c24e41784276f4ceffe8ec3af322690750",
																		"typeString": "literal_string \"log(address,bool,string)\""
																	},
																	"value": "log(address,bool,string)"
																},
																{
																	"id": 4602,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4591,
																	"src": "16305:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 4603,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4593,
																	"src": "16309:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 4604,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4595,
																	"src": "16313:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_212255cc5ff4a2d867f69451c60f51c24e41784276f4ceffe8ec3af322690750",
																		"typeString": "literal_string \"log(address,bool,string)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 4599,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "16253:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4600,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "16253:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4605,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "16253:63:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4598,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "16237:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4606,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "16237:80:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4607,
												"nodeType": "ExpressionStatement",
												"src": "16237:80:12"
											}
										]
									},
									"id": 4609,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "16176:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4596,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4591,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "16188:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4609,
												"src": "16180:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4590,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "16180:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4593,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "16197:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4609,
												"src": "16192:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4592,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "16192:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4595,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "16215:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4609,
												"src": "16201:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 4594,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "16201:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "16179:39:12"
									},
									"returnParameters": {
										"id": 4597,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "16233:0:12"
									},
									"scope": 10618,
									"src": "16167:154:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4628,
										"nodeType": "Block",
										"src": "16381:86:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c626f6f6c2c626f6f6c29",
																	"id": 4621,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "16425:24:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_eb830c92a079b46f3abcb83e519f578cffe7387941b6885067265feec096d279",
																		"typeString": "literal_string \"log(address,bool,bool)\""
																	},
																	"value": "log(address,bool,bool)"
																},
																{
																	"id": 4622,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4611,
																	"src": "16451:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 4623,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4613,
																	"src": "16455:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 4624,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4615,
																	"src": "16459:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_eb830c92a079b46f3abcb83e519f578cffe7387941b6885067265feec096d279",
																		"typeString": "literal_string \"log(address,bool,bool)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 4619,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "16401:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4620,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "16401:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4625,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "16401:61:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4618,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "16385:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4626,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "16385:78:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4627,
												"nodeType": "ExpressionStatement",
												"src": "16385:78:12"
											}
										]
									},
									"id": 4629,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "16333:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4616,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4611,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "16345:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4629,
												"src": "16337:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4610,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "16337:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4613,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "16354:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4629,
												"src": "16349:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4612,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "16349:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4615,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "16363:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4629,
												"src": "16358:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4614,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "16358:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "16336:30:12"
									},
									"returnParameters": {
										"id": 4617,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "16381:0:12"
									},
									"scope": 10618,
									"src": "16324:143:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4648,
										"nodeType": "Block",
										"src": "16530:89:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c626f6f6c2c6164647265737329",
																	"id": 4641,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "16574:27:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_f11699ed537119f000a51ba9fbd5bb55b3990a1a718acbe99659bd1bc84dc18d",
																		"typeString": "literal_string \"log(address,bool,address)\""
																	},
																	"value": "log(address,bool,address)"
																},
																{
																	"id": 4642,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4631,
																	"src": "16603:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 4643,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4633,
																	"src": "16607:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 4644,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4635,
																	"src": "16611:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_f11699ed537119f000a51ba9fbd5bb55b3990a1a718acbe99659bd1bc84dc18d",
																		"typeString": "literal_string \"log(address,bool,address)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 4639,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "16550:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4640,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "16550:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4645,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "16550:64:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4638,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "16534:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4646,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "16534:81:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4647,
												"nodeType": "ExpressionStatement",
												"src": "16534:81:12"
											}
										]
									},
									"id": 4649,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "16479:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4636,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4631,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "16491:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4649,
												"src": "16483:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4630,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "16483:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4633,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "16500:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4649,
												"src": "16495:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4632,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "16495:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4635,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "16512:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4649,
												"src": "16504:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4634,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "16504:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "16482:33:12"
									},
									"returnParameters": {
										"id": 4637,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "16530:0:12"
									},
									"scope": 10618,
									"src": "16470:149:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4668,
										"nodeType": "Block",
										"src": "16682:89:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c616464726573732c75696e7429",
																	"id": 4661,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "16726:27:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_6c366d7295b93bbfacc4df0ea28f0eef60efacfffd447f8f2823cbe5b2fedb07",
																		"typeString": "literal_string \"log(address,address,uint)\""
																	},
																	"value": "log(address,address,uint)"
																},
																{
																	"id": 4662,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4651,
																	"src": "16755:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 4663,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4653,
																	"src": "16759:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 4664,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4655,
																	"src": "16763:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_6c366d7295b93bbfacc4df0ea28f0eef60efacfffd447f8f2823cbe5b2fedb07",
																		"typeString": "literal_string \"log(address,address,uint)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 4659,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "16702:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4660,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "16702:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4665,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "16702:64:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4658,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "16686:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4666,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "16686:81:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4667,
												"nodeType": "ExpressionStatement",
												"src": "16686:81:12"
											}
										]
									},
									"id": 4669,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "16631:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4656,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4651,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "16643:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4669,
												"src": "16635:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4650,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "16635:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4653,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "16655:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4669,
												"src": "16647:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4652,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "16647:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4655,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "16664:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4669,
												"src": "16659:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4654,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "16659:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "16634:33:12"
									},
									"returnParameters": {
										"id": 4657,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "16682:0:12"
									},
									"scope": 10618,
									"src": "16622:149:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4688,
										"nodeType": "Block",
										"src": "16843:91:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c616464726573732c737472696e6729",
																	"id": 4681,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "16887:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_007150be50a4671a6be318012e9cd2eabb1e1bc8869b45c34abbaa04d81c8eee",
																		"typeString": "literal_string \"log(address,address,string)\""
																	},
																	"value": "log(address,address,string)"
																},
																{
																	"id": 4682,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4671,
																	"src": "16918:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 4683,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4673,
																	"src": "16922:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 4684,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4675,
																	"src": "16926:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_007150be50a4671a6be318012e9cd2eabb1e1bc8869b45c34abbaa04d81c8eee",
																		"typeString": "literal_string \"log(address,address,string)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 4679,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "16863:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4680,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "16863:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4685,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "16863:66:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4678,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "16847:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4686,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "16847:83:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4687,
												"nodeType": "ExpressionStatement",
												"src": "16847:83:12"
											}
										]
									},
									"id": 4689,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "16783:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4676,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4671,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "16795:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4689,
												"src": "16787:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4670,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "16787:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4673,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "16807:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4689,
												"src": "16799:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4672,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "16799:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4675,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "16825:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4689,
												"src": "16811:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 4674,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "16811:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "16786:42:12"
									},
									"returnParameters": {
										"id": 4677,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "16843:0:12"
									},
									"scope": 10618,
									"src": "16774:160:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4708,
										"nodeType": "Block",
										"src": "16997:89:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c616464726573732c626f6f6c29",
																	"id": 4701,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "17041:27:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_f2a6628622808c8bbef4f3e513ab11e708a8f5073988f2f7988e111aa26586dc",
																		"typeString": "literal_string \"log(address,address,bool)\""
																	},
																	"value": "log(address,address,bool)"
																},
																{
																	"id": 4702,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4691,
																	"src": "17070:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 4703,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4693,
																	"src": "17074:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 4704,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4695,
																	"src": "17078:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_f2a6628622808c8bbef4f3e513ab11e708a8f5073988f2f7988e111aa26586dc",
																		"typeString": "literal_string \"log(address,address,bool)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 4699,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "17017:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4700,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "17017:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4705,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "17017:64:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4698,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "17001:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4706,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "17001:81:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4707,
												"nodeType": "ExpressionStatement",
												"src": "17001:81:12"
											}
										]
									},
									"id": 4709,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "16946:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4696,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4691,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "16958:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4709,
												"src": "16950:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4690,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "16950:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4693,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "16970:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4709,
												"src": "16962:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4692,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "16962:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4695,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "16979:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4709,
												"src": "16974:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4694,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "16974:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "16949:33:12"
									},
									"returnParameters": {
										"id": 4697,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "16997:0:12"
									},
									"scope": 10618,
									"src": "16937:149:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4728,
										"nodeType": "Block",
										"src": "17152:92:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c616464726573732c6164647265737329",
																	"id": 4721,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "17196:30:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_018c84c25fb680b5bcd4e1ab1848682497c9dd3b635564a91c36ce3d1414c830",
																		"typeString": "literal_string \"log(address,address,address)\""
																	},
																	"value": "log(address,address,address)"
																},
																{
																	"id": 4722,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4711,
																	"src": "17228:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 4723,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4713,
																	"src": "17232:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 4724,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4715,
																	"src": "17236:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_018c84c25fb680b5bcd4e1ab1848682497c9dd3b635564a91c36ce3d1414c830",
																		"typeString": "literal_string \"log(address,address,address)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 4719,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "17172:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4720,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "17172:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4725,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "17172:67:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4718,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "17156:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4726,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "17156:84:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4727,
												"nodeType": "ExpressionStatement",
												"src": "17156:84:12"
											}
										]
									},
									"id": 4729,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "17098:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4716,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4711,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "17110:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4729,
												"src": "17102:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4710,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "17102:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4713,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "17122:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4729,
												"src": "17114:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4712,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "17114:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4715,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "17134:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4729,
												"src": "17126:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4714,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "17126:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "17101:36:12"
									},
									"returnParameters": {
										"id": 4717,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "17152:0:12"
									},
									"scope": 10618,
									"src": "17089:155:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4751,
										"nodeType": "Block",
										"src": "17310:92:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c75696e742c75696e742c75696e7429",
																	"id": 4743,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "17354:26:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_5ca0ad3ec7f731e4661cde447171efd221faf44c50b57eba4cc4965c1f89c0b6",
																		"typeString": "literal_string \"log(uint,uint,uint,uint)\""
																	},
																	"value": "log(uint,uint,uint,uint)"
																},
																{
																	"id": 4744,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4731,
																	"src": "17382:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4745,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4733,
																	"src": "17386:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4746,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4735,
																	"src": "17390:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4747,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4737,
																	"src": "17394:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_5ca0ad3ec7f731e4661cde447171efd221faf44c50b57eba4cc4965c1f89c0b6",
																		"typeString": "literal_string \"log(uint,uint,uint,uint)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 4741,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "17330:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4742,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "17330:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4748,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "17330:67:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4740,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "17314:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4749,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "17314:84:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4750,
												"nodeType": "ExpressionStatement",
												"src": "17314:84:12"
											}
										]
									},
									"id": 4752,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "17256:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4738,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4731,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "17265:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4752,
												"src": "17260:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4730,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "17260:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4733,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "17274:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4752,
												"src": "17269:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4732,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "17269:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4735,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "17283:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4752,
												"src": "17278:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4734,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "17278:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4737,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "17292:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4752,
												"src": "17287:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4736,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "17287:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "17259:36:12"
									},
									"returnParameters": {
										"id": 4739,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "17310:0:12"
									},
									"scope": 10618,
									"src": "17247:155:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4774,
										"nodeType": "Block",
										"src": "17477:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c75696e742c75696e742c737472696e6729",
																	"id": 4766,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "17521:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_78ad7a0c8cf57ba0e3b9e892fd6558ba40a5d4c84ef5c8c5e36bfc8d7f23b0c5",
																		"typeString": "literal_string \"log(uint,uint,uint,string)\""
																	},
																	"value": "log(uint,uint,uint,string)"
																},
																{
																	"id": 4767,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4754,
																	"src": "17551:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4768,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4756,
																	"src": "17555:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4769,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4758,
																	"src": "17559:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4770,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4760,
																	"src": "17563:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_78ad7a0c8cf57ba0e3b9e892fd6558ba40a5d4c84ef5c8c5e36bfc8d7f23b0c5",
																		"typeString": "literal_string \"log(uint,uint,uint,string)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 4764,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "17497:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4765,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "17497:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4771,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "17497:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4763,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "17481:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4772,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "17481:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4773,
												"nodeType": "ExpressionStatement",
												"src": "17481:86:12"
											}
										]
									},
									"id": 4775,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "17414:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4761,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4754,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "17423:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4775,
												"src": "17418:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4753,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "17418:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4756,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "17432:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4775,
												"src": "17427:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4755,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "17427:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4758,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "17441:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4775,
												"src": "17436:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4757,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "17436:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4760,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "17459:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4775,
												"src": "17445:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 4759,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "17445:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "17417:45:12"
									},
									"returnParameters": {
										"id": 4762,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "17477:0:12"
									},
									"scope": 10618,
									"src": "17405:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4797,
										"nodeType": "Block",
										"src": "17637:92:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c75696e742c75696e742c626f6f6c29",
																	"id": 4789,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "17681:26:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_6452b9cbdf8b8479d7ee301237b2d6dfa173fc92538628ab30d643fb4351918f",
																		"typeString": "literal_string \"log(uint,uint,uint,bool)\""
																	},
																	"value": "log(uint,uint,uint,bool)"
																},
																{
																	"id": 4790,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4777,
																	"src": "17709:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4791,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4779,
																	"src": "17713:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4792,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4781,
																	"src": "17717:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4793,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4783,
																	"src": "17721:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_6452b9cbdf8b8479d7ee301237b2d6dfa173fc92538628ab30d643fb4351918f",
																		"typeString": "literal_string \"log(uint,uint,uint,bool)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 4787,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "17657:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4788,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "17657:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4794,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "17657:67:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4786,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "17641:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4795,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "17641:84:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4796,
												"nodeType": "ExpressionStatement",
												"src": "17641:84:12"
											}
										]
									},
									"id": 4798,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "17583:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4784,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4777,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "17592:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4798,
												"src": "17587:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4776,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "17587:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4779,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "17601:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4798,
												"src": "17596:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4778,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "17596:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4781,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "17610:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4798,
												"src": "17605:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4780,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "17605:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4783,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "17619:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4798,
												"src": "17614:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4782,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "17614:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "17586:36:12"
									},
									"returnParameters": {
										"id": 4785,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "17637:0:12"
									},
									"scope": 10618,
									"src": "17574:155:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4820,
										"nodeType": "Block",
										"src": "17798:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c75696e742c75696e742c6164647265737329",
																	"id": 4812,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "17842:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_e0853f69a5584c9e0aa87ddae9bd870cf5164166d612d334644e66176c1213ba",
																		"typeString": "literal_string \"log(uint,uint,uint,address)\""
																	},
																	"value": "log(uint,uint,uint,address)"
																},
																{
																	"id": 4813,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4800,
																	"src": "17873:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4814,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4802,
																	"src": "17877:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4815,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4804,
																	"src": "17881:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4816,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4806,
																	"src": "17885:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_e0853f69a5584c9e0aa87ddae9bd870cf5164166d612d334644e66176c1213ba",
																		"typeString": "literal_string \"log(uint,uint,uint,address)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 4810,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "17818:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4811,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "17818:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4817,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "17818:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4809,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "17802:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4818,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "17802:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4819,
												"nodeType": "ExpressionStatement",
												"src": "17802:87:12"
											}
										]
									},
									"id": 4821,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "17741:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4807,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4800,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "17750:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4821,
												"src": "17745:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4799,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "17745:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4802,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "17759:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4821,
												"src": "17754:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4801,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "17754:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4804,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "17768:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4821,
												"src": "17763:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4803,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "17763:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4806,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "17780:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4821,
												"src": "17772:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4805,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "17772:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "17744:39:12"
									},
									"returnParameters": {
										"id": 4808,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "17798:0:12"
									},
									"scope": 10618,
									"src": "17732:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4843,
										"nodeType": "Block",
										"src": "17968:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c75696e742c737472696e672c75696e7429",
																	"id": 4835,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "18012:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_3894163d4e8f3eec101fb8e2c1029563bd05d05ee1d1790a46910ebbbdc3072e",
																		"typeString": "literal_string \"log(uint,uint,string,uint)\""
																	},
																	"value": "log(uint,uint,string,uint)"
																},
																{
																	"id": 4836,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4823,
																	"src": "18042:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4837,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4825,
																	"src": "18046:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4838,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4827,
																	"src": "18050:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 4839,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4829,
																	"src": "18054:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_3894163d4e8f3eec101fb8e2c1029563bd05d05ee1d1790a46910ebbbdc3072e",
																		"typeString": "literal_string \"log(uint,uint,string,uint)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 4833,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "17988:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4834,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "17988:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4840,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "17988:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4832,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "17972:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4841,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "17972:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4842,
												"nodeType": "ExpressionStatement",
												"src": "17972:86:12"
											}
										]
									},
									"id": 4844,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "17905:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4830,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4823,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "17914:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4844,
												"src": "17909:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4822,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "17909:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4825,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "17923:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4844,
												"src": "17918:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4824,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "17918:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4827,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "17941:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4844,
												"src": "17927:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 4826,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "17927:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4829,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "17950:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4844,
												"src": "17945:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4828,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "17945:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "17908:45:12"
									},
									"returnParameters": {
										"id": 4831,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "17968:0:12"
									},
									"scope": 10618,
									"src": "17896:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4866,
										"nodeType": "Block",
										"src": "18146:96:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c75696e742c737472696e672c737472696e6729",
																	"id": 4858,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "18190:30:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_7c032a3207958e3d969ab52b045e7a59226129ee4b9e813f7071f9a5e80813f6",
																		"typeString": "literal_string \"log(uint,uint,string,string)\""
																	},
																	"value": "log(uint,uint,string,string)"
																},
																{
																	"id": 4859,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4846,
																	"src": "18222:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4860,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4848,
																	"src": "18226:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4861,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4850,
																	"src": "18230:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 4862,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4852,
																	"src": "18234:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_7c032a3207958e3d969ab52b045e7a59226129ee4b9e813f7071f9a5e80813f6",
																		"typeString": "literal_string \"log(uint,uint,string,string)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 4856,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "18166:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4857,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "18166:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4863,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "18166:71:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4855,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "18150:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4864,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "18150:88:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4865,
												"nodeType": "ExpressionStatement",
												"src": "18150:88:12"
											}
										]
									},
									"id": 4867,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "18074:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4853,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4846,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "18083:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4867,
												"src": "18078:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4845,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "18078:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4848,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "18092:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4867,
												"src": "18087:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4847,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "18087:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4850,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "18110:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4867,
												"src": "18096:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 4849,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "18096:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4852,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "18128:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4867,
												"src": "18114:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 4851,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "18114:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "18077:54:12"
									},
									"returnParameters": {
										"id": 4854,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "18146:0:12"
									},
									"scope": 10618,
									"src": "18065:177:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4889,
										"nodeType": "Block",
										"src": "18317:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c75696e742c737472696e672c626f6f6c29",
																	"id": 4881,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "18361:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_b22eaf06d72d481cf9b94b8f4d5fb89cf08bbfd924ee166a250ac94617be65b9",
																		"typeString": "literal_string \"log(uint,uint,string,bool)\""
																	},
																	"value": "log(uint,uint,string,bool)"
																},
																{
																	"id": 4882,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4869,
																	"src": "18391:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4883,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4871,
																	"src": "18395:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4884,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4873,
																	"src": "18399:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 4885,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4875,
																	"src": "18403:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_b22eaf06d72d481cf9b94b8f4d5fb89cf08bbfd924ee166a250ac94617be65b9",
																		"typeString": "literal_string \"log(uint,uint,string,bool)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 4879,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "18337:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4880,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "18337:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4886,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "18337:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4878,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "18321:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4887,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "18321:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4888,
												"nodeType": "ExpressionStatement",
												"src": "18321:86:12"
											}
										]
									},
									"id": 4890,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "18254:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4876,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4869,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "18263:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4890,
												"src": "18258:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4868,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "18258:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4871,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "18272:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4890,
												"src": "18267:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4870,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "18267:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4873,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "18290:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4890,
												"src": "18276:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 4872,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "18276:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4875,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "18299:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4890,
												"src": "18294:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4874,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "18294:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "18257:45:12"
									},
									"returnParameters": {
										"id": 4877,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "18317:0:12"
									},
									"scope": 10618,
									"src": "18245:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4912,
										"nodeType": "Block",
										"src": "18489:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c75696e742c737472696e672c6164647265737329",
																	"id": 4904,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "18533:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_433285a23ec6b1f0f76da64682232527561857544109f80e3e5d46b0e16980e7",
																		"typeString": "literal_string \"log(uint,uint,string,address)\""
																	},
																	"value": "log(uint,uint,string,address)"
																},
																{
																	"id": 4905,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4892,
																	"src": "18566:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4906,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4894,
																	"src": "18570:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4907,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4896,
																	"src": "18574:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 4908,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4898,
																	"src": "18578:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_433285a23ec6b1f0f76da64682232527561857544109f80e3e5d46b0e16980e7",
																		"typeString": "literal_string \"log(uint,uint,string,address)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 4902,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "18509:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4903,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "18509:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4909,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "18509:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4901,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "18493:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4910,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "18493:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4911,
												"nodeType": "ExpressionStatement",
												"src": "18493:89:12"
											}
										]
									},
									"id": 4913,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "18423:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4899,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4892,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "18432:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4913,
												"src": "18427:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4891,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "18427:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4894,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "18441:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4913,
												"src": "18436:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4893,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "18436:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4896,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "18459:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4913,
												"src": "18445:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 4895,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "18445:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4898,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "18471:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4913,
												"src": "18463:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4897,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "18463:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "18426:48:12"
									},
									"returnParameters": {
										"id": 4900,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "18489:0:12"
									},
									"scope": 10618,
									"src": "18414:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4935,
										"nodeType": "Block",
										"src": "18652:92:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c75696e742c626f6f6c2c75696e7429",
																	"id": 4927,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "18696:26:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_6c647c8c5fed6e02ad4f1c7bfb891e58ba00758f5d6cb92966fd0684c5b3fc8d",
																		"typeString": "literal_string \"log(uint,uint,bool,uint)\""
																	},
																	"value": "log(uint,uint,bool,uint)"
																},
																{
																	"id": 4928,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4915,
																	"src": "18724:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4929,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4917,
																	"src": "18728:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4930,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4919,
																	"src": "18732:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 4931,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4921,
																	"src": "18736:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_6c647c8c5fed6e02ad4f1c7bfb891e58ba00758f5d6cb92966fd0684c5b3fc8d",
																		"typeString": "literal_string \"log(uint,uint,bool,uint)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 4925,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "18672:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4926,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "18672:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4932,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "18672:67:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4924,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "18656:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4933,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "18656:84:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4934,
												"nodeType": "ExpressionStatement",
												"src": "18656:84:12"
											}
										]
									},
									"id": 4936,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "18598:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4922,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4915,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "18607:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4936,
												"src": "18602:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4914,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "18602:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4917,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "18616:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4936,
												"src": "18611:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4916,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "18611:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4919,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "18625:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4936,
												"src": "18620:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4918,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "18620:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4921,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "18634:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4936,
												"src": "18629:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4920,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "18629:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "18601:36:12"
									},
									"returnParameters": {
										"id": 4923,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "18652:0:12"
									},
									"scope": 10618,
									"src": "18589:155:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4958,
										"nodeType": "Block",
										"src": "18819:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c75696e742c626f6f6c2c737472696e6729",
																	"id": 4950,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "18863:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_efd9cbeee79713372dd0a748a26a3fb36cbe4eb4e01a37fbde0cde0e101fc85a",
																		"typeString": "literal_string \"log(uint,uint,bool,string)\""
																	},
																	"value": "log(uint,uint,bool,string)"
																},
																{
																	"id": 4951,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4938,
																	"src": "18893:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4952,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4940,
																	"src": "18897:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4953,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4942,
																	"src": "18901:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 4954,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4944,
																	"src": "18905:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_efd9cbeee79713372dd0a748a26a3fb36cbe4eb4e01a37fbde0cde0e101fc85a",
																		"typeString": "literal_string \"log(uint,uint,bool,string)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 4948,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "18839:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4949,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "18839:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4955,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "18839:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4947,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "18823:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4956,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "18823:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4957,
												"nodeType": "ExpressionStatement",
												"src": "18823:86:12"
											}
										]
									},
									"id": 4959,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "18756:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4945,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4938,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "18765:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4959,
												"src": "18760:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4937,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "18760:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4940,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "18774:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4959,
												"src": "18769:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4939,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "18769:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4942,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "18783:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4959,
												"src": "18778:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4941,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "18778:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4944,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "18801:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4959,
												"src": "18787:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 4943,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "18787:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "18759:45:12"
									},
									"returnParameters": {
										"id": 4946,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "18819:0:12"
									},
									"scope": 10618,
									"src": "18747:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 4981,
										"nodeType": "Block",
										"src": "18979:92:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c75696e742c626f6f6c2c626f6f6c29",
																	"id": 4973,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "19023:26:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_94be3bb13e096cdbc5a1999a524e3b6664a32da7e2c2954ae0e2b792a0dd1f41",
																		"typeString": "literal_string \"log(uint,uint,bool,bool)\""
																	},
																	"value": "log(uint,uint,bool,bool)"
																},
																{
																	"id": 4974,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4961,
																	"src": "19051:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4975,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4963,
																	"src": "19055:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4976,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4965,
																	"src": "19059:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 4977,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4967,
																	"src": "19063:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_94be3bb13e096cdbc5a1999a524e3b6664a32da7e2c2954ae0e2b792a0dd1f41",
																		"typeString": "literal_string \"log(uint,uint,bool,bool)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 4971,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "18999:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4972,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "18999:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 4978,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "18999:67:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4970,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "18983:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 4979,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "18983:84:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 4980,
												"nodeType": "ExpressionStatement",
												"src": "18983:84:12"
											}
										]
									},
									"id": 4982,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "18925:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4968,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4961,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "18934:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4982,
												"src": "18929:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4960,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "18929:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4963,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "18943:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4982,
												"src": "18938:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4962,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "18938:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4965,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "18952:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4982,
												"src": "18947:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4964,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "18947:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4967,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "18961:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 4982,
												"src": "18956:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4966,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "18956:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "18928:36:12"
									},
									"returnParameters": {
										"id": 4969,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "18979:0:12"
									},
									"scope": 10618,
									"src": "18916:155:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5004,
										"nodeType": "Block",
										"src": "19140:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c75696e742c626f6f6c2c6164647265737329",
																	"id": 4996,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "19184:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_e117744fcc46e4484cabd18d640497b4a9d76b7f775e79fe9a95e42427bd8976",
																		"typeString": "literal_string \"log(uint,uint,bool,address)\""
																	},
																	"value": "log(uint,uint,bool,address)"
																},
																{
																	"id": 4997,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4984,
																	"src": "19215:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4998,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4986,
																	"src": "19219:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 4999,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4988,
																	"src": "19223:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 5000,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4990,
																	"src": "19227:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_e117744fcc46e4484cabd18d640497b4a9d76b7f775e79fe9a95e42427bd8976",
																		"typeString": "literal_string \"log(uint,uint,bool,address)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 4994,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "19160:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 4995,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "19160:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5001,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "19160:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 4993,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "19144:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5002,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "19144:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5003,
												"nodeType": "ExpressionStatement",
												"src": "19144:87:12"
											}
										]
									},
									"id": 5005,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "19083:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 4991,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 4984,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "19092:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5005,
												"src": "19087:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4983,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "19087:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4986,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "19101:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5005,
												"src": "19096:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 4985,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "19096:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4988,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "19110:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5005,
												"src": "19105:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 4987,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "19105:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 4990,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "19122:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5005,
												"src": "19114:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 4989,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "19114:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "19086:39:12"
									},
									"returnParameters": {
										"id": 4992,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "19140:0:12"
									},
									"scope": 10618,
									"src": "19074:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5027,
										"nodeType": "Block",
										"src": "19304:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c75696e742c616464726573732c75696e7429",
																	"id": 5019,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "19348:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_610ba8c0cae1123f7f8ad76791afd86dc185a4f1fe79a263112118ddb5231e9f",
																		"typeString": "literal_string \"log(uint,uint,address,uint)\""
																	},
																	"value": "log(uint,uint,address,uint)"
																},
																{
																	"id": 5020,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5007,
																	"src": "19379:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5021,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5009,
																	"src": "19383:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5022,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5011,
																	"src": "19387:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 5023,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5013,
																	"src": "19391:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_610ba8c0cae1123f7f8ad76791afd86dc185a4f1fe79a263112118ddb5231e9f",
																		"typeString": "literal_string \"log(uint,uint,address,uint)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 5017,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "19324:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5018,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "19324:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5024,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "19324:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5016,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "19308:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5025,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "19308:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5026,
												"nodeType": "ExpressionStatement",
												"src": "19308:87:12"
											}
										]
									},
									"id": 5028,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "19247:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5014,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5007,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "19256:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5028,
												"src": "19251:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5006,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "19251:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5009,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "19265:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5028,
												"src": "19260:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5008,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "19260:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5011,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "19277:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5028,
												"src": "19269:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 5010,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "19269:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5013,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "19286:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5028,
												"src": "19281:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5012,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "19281:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "19250:39:12"
									},
									"returnParameters": {
										"id": 5015,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "19304:0:12"
									},
									"scope": 10618,
									"src": "19238:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5050,
										"nodeType": "Block",
										"src": "19477:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c75696e742c616464726573732c737472696e6729",
																	"id": 5042,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "19521:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_d6a2d1de1bf5c0a47e82220cd592c8fb4a4a43f17ecab471044861ef70454227",
																		"typeString": "literal_string \"log(uint,uint,address,string)\""
																	},
																	"value": "log(uint,uint,address,string)"
																},
																{
																	"id": 5043,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5030,
																	"src": "19554:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5044,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5032,
																	"src": "19558:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5045,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5034,
																	"src": "19562:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 5046,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5036,
																	"src": "19566:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_d6a2d1de1bf5c0a47e82220cd592c8fb4a4a43f17ecab471044861ef70454227",
																		"typeString": "literal_string \"log(uint,uint,address,string)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 5040,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "19497:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5041,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "19497:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5047,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "19497:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5039,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "19481:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5048,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "19481:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5049,
												"nodeType": "ExpressionStatement",
												"src": "19481:89:12"
											}
										]
									},
									"id": 5051,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "19411:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5037,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5030,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "19420:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5051,
												"src": "19415:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5029,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "19415:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5032,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "19429:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5051,
												"src": "19424:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5031,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "19424:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5034,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "19441:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5051,
												"src": "19433:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 5033,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "19433:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5036,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "19459:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5051,
												"src": "19445:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5035,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "19445:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "19414:48:12"
									},
									"returnParameters": {
										"id": 5038,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "19477:0:12"
									},
									"scope": 10618,
									"src": "19402:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5073,
										"nodeType": "Block",
										"src": "19643:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c75696e742c616464726573732c626f6f6c29",
																	"id": 5065,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "19687:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_a8e820ae9dc5fd5a845e5dabf2b296e5588fe5a0d8101de14323ebe3e8e2b6c0",
																		"typeString": "literal_string \"log(uint,uint,address,bool)\""
																	},
																	"value": "log(uint,uint,address,bool)"
																},
																{
																	"id": 5066,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5053,
																	"src": "19718:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5067,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5055,
																	"src": "19722:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5068,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5057,
																	"src": "19726:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 5069,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5059,
																	"src": "19730:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_a8e820ae9dc5fd5a845e5dabf2b296e5588fe5a0d8101de14323ebe3e8e2b6c0",
																		"typeString": "literal_string \"log(uint,uint,address,bool)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 5063,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "19663:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5064,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "19663:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5070,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "19663:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5062,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "19647:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5071,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "19647:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5072,
												"nodeType": "ExpressionStatement",
												"src": "19647:87:12"
											}
										]
									},
									"id": 5074,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "19586:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5060,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5053,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "19595:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5074,
												"src": "19590:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5052,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "19590:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5055,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "19604:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5074,
												"src": "19599:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5054,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "19599:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5057,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "19616:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5074,
												"src": "19608:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 5056,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "19608:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5059,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "19625:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5074,
												"src": "19620:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5058,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "19620:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "19589:39:12"
									},
									"returnParameters": {
										"id": 5061,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "19643:0:12"
									},
									"scope": 10618,
									"src": "19577:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5096,
										"nodeType": "Block",
										"src": "19810:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c75696e742c616464726573732c6164647265737329",
																	"id": 5088,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "19854:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_ca939b20e9284d76bbbc091d0d45d06f650171230ac4f1f35652b8b6e1579811",
																		"typeString": "literal_string \"log(uint,uint,address,address)\""
																	},
																	"value": "log(uint,uint,address,address)"
																},
																{
																	"id": 5089,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5076,
																	"src": "19888:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5090,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5078,
																	"src": "19892:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5091,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5080,
																	"src": "19896:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 5092,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5082,
																	"src": "19900:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_ca939b20e9284d76bbbc091d0d45d06f650171230ac4f1f35652b8b6e1579811",
																		"typeString": "literal_string \"log(uint,uint,address,address)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 5086,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "19830:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5087,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "19830:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5093,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "19830:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5085,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "19814:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5094,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "19814:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5095,
												"nodeType": "ExpressionStatement",
												"src": "19814:90:12"
											}
										]
									},
									"id": 5097,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "19750:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5083,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5076,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "19759:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5097,
												"src": "19754:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5075,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "19754:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5078,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "19768:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5097,
												"src": "19763:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5077,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "19763:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5080,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "19780:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5097,
												"src": "19772:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 5079,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "19772:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5082,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "19792:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5097,
												"src": "19784:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 5081,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "19784:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "19753:42:12"
									},
									"returnParameters": {
										"id": 5084,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "19810:0:12"
									},
									"scope": 10618,
									"src": "19741:167:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5119,
										"nodeType": "Block",
										"src": "19983:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c737472696e672c75696e742c75696e7429",
																	"id": 5111,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "20027:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_c0043807b5f951e0375253205c951c6e6a6b19b5de111342e8f6be7c7f284628",
																		"typeString": "literal_string \"log(uint,string,uint,uint)\""
																	},
																	"value": "log(uint,string,uint,uint)"
																},
																{
																	"id": 5112,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5099,
																	"src": "20057:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5113,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5101,
																	"src": "20061:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 5114,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5103,
																	"src": "20065:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5115,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5105,
																	"src": "20069:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_c0043807b5f951e0375253205c951c6e6a6b19b5de111342e8f6be7c7f284628",
																		"typeString": "literal_string \"log(uint,string,uint,uint)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 5109,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "20003:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5110,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "20003:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5116,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "20003:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5108,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "19987:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5117,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "19987:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5118,
												"nodeType": "ExpressionStatement",
												"src": "19987:86:12"
											}
										]
									},
									"id": 5120,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "19920:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5106,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5099,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "19929:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5120,
												"src": "19924:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5098,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "19924:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5101,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "19947:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5120,
												"src": "19933:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5100,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "19933:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5103,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "19956:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5120,
												"src": "19951:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5102,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "19951:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5105,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "19965:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5120,
												"src": "19960:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5104,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "19960:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "19923:45:12"
									},
									"returnParameters": {
										"id": 5107,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "19983:0:12"
									},
									"scope": 10618,
									"src": "19911:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5142,
										"nodeType": "Block",
										"src": "20161:96:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c737472696e672c75696e742c737472696e6729",
																	"id": 5134,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "20205:30:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_a2bc0c99cedfd873182e8eb1e68799dc8925c663b8ce2430858586fba62fe313",
																		"typeString": "literal_string \"log(uint,string,uint,string)\""
																	},
																	"value": "log(uint,string,uint,string)"
																},
																{
																	"id": 5135,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5122,
																	"src": "20237:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5136,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5124,
																	"src": "20241:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 5137,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5126,
																	"src": "20245:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5138,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5128,
																	"src": "20249:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_a2bc0c99cedfd873182e8eb1e68799dc8925c663b8ce2430858586fba62fe313",
																		"typeString": "literal_string \"log(uint,string,uint,string)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 5132,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "20181:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5133,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "20181:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5139,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "20181:71:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5131,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "20165:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5140,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "20165:88:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5141,
												"nodeType": "ExpressionStatement",
												"src": "20165:88:12"
											}
										]
									},
									"id": 5143,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "20089:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5129,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5122,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "20098:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5143,
												"src": "20093:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5121,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "20093:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5124,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "20116:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5143,
												"src": "20102:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5123,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "20102:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5126,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "20125:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5143,
												"src": "20120:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5125,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "20120:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5128,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "20143:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5143,
												"src": "20129:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5127,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "20129:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "20092:54:12"
									},
									"returnParameters": {
										"id": 5130,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "20161:0:12"
									},
									"scope": 10618,
									"src": "20080:177:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5165,
										"nodeType": "Block",
										"src": "20332:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c737472696e672c75696e742c626f6f6c29",
																	"id": 5157,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "20376:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_875a6e2ed2444d0d09e264b06717914212d8a793bea0f48b5633e707ac53784d",
																		"typeString": "literal_string \"log(uint,string,uint,bool)\""
																	},
																	"value": "log(uint,string,uint,bool)"
																},
																{
																	"id": 5158,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5145,
																	"src": "20406:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5159,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5147,
																	"src": "20410:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 5160,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5149,
																	"src": "20414:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5161,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5151,
																	"src": "20418:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_875a6e2ed2444d0d09e264b06717914212d8a793bea0f48b5633e707ac53784d",
																		"typeString": "literal_string \"log(uint,string,uint,bool)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 5155,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "20352:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5156,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "20352:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5162,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "20352:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5154,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "20336:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5163,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "20336:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5164,
												"nodeType": "ExpressionStatement",
												"src": "20336:86:12"
											}
										]
									},
									"id": 5166,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "20269:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5152,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5145,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "20278:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5166,
												"src": "20273:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5144,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "20273:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5147,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "20296:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5166,
												"src": "20282:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5146,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "20282:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5149,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "20305:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5166,
												"src": "20300:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5148,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "20300:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5151,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "20314:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5166,
												"src": "20309:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5150,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "20309:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "20272:45:12"
									},
									"returnParameters": {
										"id": 5153,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "20332:0:12"
									},
									"scope": 10618,
									"src": "20260:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5188,
										"nodeType": "Block",
										"src": "20504:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c737472696e672c75696e742c6164647265737329",
																	"id": 5180,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "20548:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_ab7bd9fd9b149127bbb235a3e1bec9a2e844f3968bdc1f48944c4b1973dacfda",
																		"typeString": "literal_string \"log(uint,string,uint,address)\""
																	},
																	"value": "log(uint,string,uint,address)"
																},
																{
																	"id": 5181,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5168,
																	"src": "20581:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5182,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5170,
																	"src": "20585:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 5183,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5172,
																	"src": "20589:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5184,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5174,
																	"src": "20593:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_ab7bd9fd9b149127bbb235a3e1bec9a2e844f3968bdc1f48944c4b1973dacfda",
																		"typeString": "literal_string \"log(uint,string,uint,address)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 5178,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "20524:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5179,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "20524:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5185,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "20524:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5177,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "20508:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5186,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "20508:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5187,
												"nodeType": "ExpressionStatement",
												"src": "20508:89:12"
											}
										]
									},
									"id": 5189,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "20438:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5175,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5168,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "20447:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5189,
												"src": "20442:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5167,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "20442:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5170,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "20465:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5189,
												"src": "20451:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5169,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "20451:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5172,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "20474:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5189,
												"src": "20469:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5171,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "20469:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5174,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "20486:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5189,
												"src": "20478:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 5173,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "20478:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "20441:48:12"
									},
									"returnParameters": {
										"id": 5176,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "20504:0:12"
									},
									"scope": 10618,
									"src": "20429:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5211,
										"nodeType": "Block",
										"src": "20685:96:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c737472696e672c737472696e672c75696e7429",
																	"id": 5203,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "20729:30:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_76ec635e4702367bf449b895743175fa2654af8170b6d9c20dd183616d0a192b",
																		"typeString": "literal_string \"log(uint,string,string,uint)\""
																	},
																	"value": "log(uint,string,string,uint)"
																},
																{
																	"id": 5204,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5191,
																	"src": "20761:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5205,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5193,
																	"src": "20765:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 5206,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5195,
																	"src": "20769:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 5207,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5197,
																	"src": "20773:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_76ec635e4702367bf449b895743175fa2654af8170b6d9c20dd183616d0a192b",
																		"typeString": "literal_string \"log(uint,string,string,uint)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 5201,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "20705:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5202,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "20705:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5208,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "20705:71:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5200,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "20689:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5209,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "20689:88:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5210,
												"nodeType": "ExpressionStatement",
												"src": "20689:88:12"
											}
										]
									},
									"id": 5212,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "20613:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5198,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5191,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "20622:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5212,
												"src": "20617:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5190,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "20617:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5193,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "20640:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5212,
												"src": "20626:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5192,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "20626:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5195,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "20658:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5212,
												"src": "20644:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5194,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "20644:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5197,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "20667:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5212,
												"src": "20662:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5196,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "20662:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "20616:54:12"
									},
									"returnParameters": {
										"id": 5199,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "20685:0:12"
									},
									"scope": 10618,
									"src": "20604:177:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5234,
										"nodeType": "Block",
										"src": "20874:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c737472696e672c737472696e672c737472696e6729",
																	"id": 5226,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "20918:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_57dd0a119927787a0c91b48333e191a1b3a4082dcb6efc912e2ba5b047e15156",
																		"typeString": "literal_string \"log(uint,string,string,string)\""
																	},
																	"value": "log(uint,string,string,string)"
																},
																{
																	"id": 5227,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5214,
																	"src": "20952:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5228,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5216,
																	"src": "20956:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 5229,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5218,
																	"src": "20960:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 5230,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5220,
																	"src": "20964:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_57dd0a119927787a0c91b48333e191a1b3a4082dcb6efc912e2ba5b047e15156",
																		"typeString": "literal_string \"log(uint,string,string,string)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 5224,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "20894:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5225,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "20894:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5231,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "20894:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5223,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "20878:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5232,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "20878:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5233,
												"nodeType": "ExpressionStatement",
												"src": "20878:90:12"
											}
										]
									},
									"id": 5235,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "20793:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5221,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5214,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "20802:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5235,
												"src": "20797:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5213,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "20797:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5216,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "20820:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5235,
												"src": "20806:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5215,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "20806:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5218,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "20838:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5235,
												"src": "20824:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5217,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "20824:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5220,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "20856:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5235,
												"src": "20842:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5219,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "20842:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "20796:63:12"
									},
									"returnParameters": {
										"id": 5222,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "20874:0:12"
									},
									"scope": 10618,
									"src": "20784:188:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5257,
										"nodeType": "Block",
										"src": "21056:96:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c737472696e672c737472696e672c626f6f6c29",
																	"id": 5249,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "21100:30:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_12862b98fdb7950b0e6908443bc9d7894b44d5616424da5cdb6206a848affcbc",
																		"typeString": "literal_string \"log(uint,string,string,bool)\""
																	},
																	"value": "log(uint,string,string,bool)"
																},
																{
																	"id": 5250,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5237,
																	"src": "21132:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5251,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5239,
																	"src": "21136:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 5252,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5241,
																	"src": "21140:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 5253,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5243,
																	"src": "21144:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_12862b98fdb7950b0e6908443bc9d7894b44d5616424da5cdb6206a848affcbc",
																		"typeString": "literal_string \"log(uint,string,string,bool)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 5247,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "21076:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5248,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "21076:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5254,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "21076:71:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5246,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "21060:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5255,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "21060:88:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5256,
												"nodeType": "ExpressionStatement",
												"src": "21060:88:12"
											}
										]
									},
									"id": 5258,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "20984:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5244,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5237,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "20993:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5258,
												"src": "20988:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5236,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "20988:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5239,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "21011:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5258,
												"src": "20997:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5238,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "20997:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5241,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "21029:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5258,
												"src": "21015:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5240,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "21015:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5243,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "21038:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5258,
												"src": "21033:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5242,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "21033:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "20987:54:12"
									},
									"returnParameters": {
										"id": 5245,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "21056:0:12"
									},
									"scope": 10618,
									"src": "20975:177:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5280,
										"nodeType": "Block",
										"src": "21239:99:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c737472696e672c737472696e672c6164647265737329",
																	"id": 5272,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "21283:33:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_cc988aa0514d1ed8be70a6bf2bdff4972e3f3420811b4adbd40f9b75b873fded",
																		"typeString": "literal_string \"log(uint,string,string,address)\""
																	},
																	"value": "log(uint,string,string,address)"
																},
																{
																	"id": 5273,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5260,
																	"src": "21318:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5274,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5262,
																	"src": "21322:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 5275,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5264,
																	"src": "21326:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 5276,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5266,
																	"src": "21330:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_cc988aa0514d1ed8be70a6bf2bdff4972e3f3420811b4adbd40f9b75b873fded",
																		"typeString": "literal_string \"log(uint,string,string,address)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 5270,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "21259:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5271,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "21259:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5277,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "21259:74:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5269,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "21243:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5278,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "21243:91:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5279,
												"nodeType": "ExpressionStatement",
												"src": "21243:91:12"
											}
										]
									},
									"id": 5281,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "21164:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5267,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5260,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "21173:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5281,
												"src": "21168:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5259,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "21168:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5262,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "21191:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5281,
												"src": "21177:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5261,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "21177:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5264,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "21209:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5281,
												"src": "21195:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5263,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "21195:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5266,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "21221:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5281,
												"src": "21213:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 5265,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "21213:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "21167:57:12"
									},
									"returnParameters": {
										"id": 5268,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "21239:0:12"
									},
									"scope": 10618,
									"src": "21155:183:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5303,
										"nodeType": "Block",
										"src": "21413:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c737472696e672c626f6f6c2c75696e7429",
																	"id": 5295,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "21457:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_a4b48a7f4bdefee99950b35e5da7ba9724c3954e445cc3077000bce7a4265081",
																		"typeString": "literal_string \"log(uint,string,bool,uint)\""
																	},
																	"value": "log(uint,string,bool,uint)"
																},
																{
																	"id": 5296,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5283,
																	"src": "21487:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5297,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5285,
																	"src": "21491:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 5298,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5287,
																	"src": "21495:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 5299,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5289,
																	"src": "21499:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_a4b48a7f4bdefee99950b35e5da7ba9724c3954e445cc3077000bce7a4265081",
																		"typeString": "literal_string \"log(uint,string,bool,uint)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 5293,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "21433:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5294,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "21433:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5300,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "21433:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5292,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "21417:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5301,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "21417:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5302,
												"nodeType": "ExpressionStatement",
												"src": "21417:86:12"
											}
										]
									},
									"id": 5304,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "21350:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5290,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5283,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "21359:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5304,
												"src": "21354:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5282,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "21354:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5285,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "21377:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5304,
												"src": "21363:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5284,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "21363:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5287,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "21386:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5304,
												"src": "21381:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5286,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "21381:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5289,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "21395:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5304,
												"src": "21390:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5288,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "21390:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "21353:45:12"
									},
									"returnParameters": {
										"id": 5291,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "21413:0:12"
									},
									"scope": 10618,
									"src": "21341:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5326,
										"nodeType": "Block",
										"src": "21591:96:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c737472696e672c626f6f6c2c737472696e6729",
																	"id": 5318,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "21635:30:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_8d489ca064b1083bafb8388fd8f3d44c2255dbe322f7a52abe786a76257d06e4",
																		"typeString": "literal_string \"log(uint,string,bool,string)\""
																	},
																	"value": "log(uint,string,bool,string)"
																},
																{
																	"id": 5319,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5306,
																	"src": "21667:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5320,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5308,
																	"src": "21671:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 5321,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5310,
																	"src": "21675:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 5322,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5312,
																	"src": "21679:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_8d489ca064b1083bafb8388fd8f3d44c2255dbe322f7a52abe786a76257d06e4",
																		"typeString": "literal_string \"log(uint,string,bool,string)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 5316,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "21611:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5317,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "21611:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5323,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "21611:71:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5315,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "21595:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5324,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "21595:88:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5325,
												"nodeType": "ExpressionStatement",
												"src": "21595:88:12"
											}
										]
									},
									"id": 5327,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "21519:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5313,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5306,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "21528:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5327,
												"src": "21523:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5305,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "21523:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5308,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "21546:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5327,
												"src": "21532:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5307,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "21532:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5310,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "21555:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5327,
												"src": "21550:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5309,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "21550:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5312,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "21573:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5327,
												"src": "21559:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5311,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "21559:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "21522:54:12"
									},
									"returnParameters": {
										"id": 5314,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "21591:0:12"
									},
									"scope": 10618,
									"src": "21510:177:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5349,
										"nodeType": "Block",
										"src": "21762:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c737472696e672c626f6f6c2c626f6f6c29",
																	"id": 5341,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "21806:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_51bc2bc161debf765eefa84d88e06440adeb87045d559377a9edb97406168b2a",
																		"typeString": "literal_string \"log(uint,string,bool,bool)\""
																	},
																	"value": "log(uint,string,bool,bool)"
																},
																{
																	"id": 5342,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5329,
																	"src": "21836:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5343,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5331,
																	"src": "21840:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 5344,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5333,
																	"src": "21844:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 5345,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5335,
																	"src": "21848:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_51bc2bc161debf765eefa84d88e06440adeb87045d559377a9edb97406168b2a",
																		"typeString": "literal_string \"log(uint,string,bool,bool)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 5339,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "21782:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5340,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "21782:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5346,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "21782:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5338,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "21766:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5347,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "21766:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5348,
												"nodeType": "ExpressionStatement",
												"src": "21766:86:12"
											}
										]
									},
									"id": 5350,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "21699:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5336,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5329,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "21708:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5350,
												"src": "21703:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5328,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "21703:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5331,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "21726:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5350,
												"src": "21712:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5330,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "21712:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5333,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "21735:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5350,
												"src": "21730:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5332,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "21730:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5335,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "21744:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5350,
												"src": "21739:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5334,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "21739:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "21702:45:12"
									},
									"returnParameters": {
										"id": 5337,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "21762:0:12"
									},
									"scope": 10618,
									"src": "21690:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5372,
										"nodeType": "Block",
										"src": "21934:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c737472696e672c626f6f6c2c6164647265737329",
																	"id": 5364,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "21978:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_796f28a06ededa438107c0866560412d4d4337e29da4c7300f50c49a73c18829",
																		"typeString": "literal_string \"log(uint,string,bool,address)\""
																	},
																	"value": "log(uint,string,bool,address)"
																},
																{
																	"id": 5365,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5352,
																	"src": "22011:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5366,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5354,
																	"src": "22015:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 5367,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5356,
																	"src": "22019:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 5368,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5358,
																	"src": "22023:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_796f28a06ededa438107c0866560412d4d4337e29da4c7300f50c49a73c18829",
																		"typeString": "literal_string \"log(uint,string,bool,address)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 5362,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "21954:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5363,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "21954:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5369,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "21954:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5361,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "21938:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5370,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "21938:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5371,
												"nodeType": "ExpressionStatement",
												"src": "21938:89:12"
											}
										]
									},
									"id": 5373,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "21868:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5359,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5352,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "21877:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5373,
												"src": "21872:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5351,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "21872:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5354,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "21895:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5373,
												"src": "21881:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5353,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "21881:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5356,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "21904:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5373,
												"src": "21899:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5355,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "21899:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5358,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "21916:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5373,
												"src": "21908:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 5357,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "21908:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "21871:48:12"
									},
									"returnParameters": {
										"id": 5360,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "21934:0:12"
									},
									"scope": 10618,
									"src": "21859:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5395,
										"nodeType": "Block",
										"src": "22109:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c737472696e672c616464726573732c75696e7429",
																	"id": 5387,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "22153:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_98e7f3f3a2c39a91982b0a3ae7f29043579abd563fc10531c052f92c3317af43",
																		"typeString": "literal_string \"log(uint,string,address,uint)\""
																	},
																	"value": "log(uint,string,address,uint)"
																},
																{
																	"id": 5388,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5375,
																	"src": "22186:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5389,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5377,
																	"src": "22190:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 5390,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5379,
																	"src": "22194:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 5391,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5381,
																	"src": "22198:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_98e7f3f3a2c39a91982b0a3ae7f29043579abd563fc10531c052f92c3317af43",
																		"typeString": "literal_string \"log(uint,string,address,uint)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 5385,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "22129:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5386,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "22129:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5392,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "22129:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5384,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "22113:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5393,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "22113:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5394,
												"nodeType": "ExpressionStatement",
												"src": "22113:89:12"
											}
										]
									},
									"id": 5396,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "22043:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5382,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5375,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "22052:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5396,
												"src": "22047:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5374,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "22047:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5377,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "22070:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5396,
												"src": "22056:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5376,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "22056:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5379,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "22082:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5396,
												"src": "22074:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 5378,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "22074:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5381,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "22091:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5396,
												"src": "22086:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5380,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "22086:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "22046:48:12"
									},
									"returnParameters": {
										"id": 5383,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "22109:0:12"
									},
									"scope": 10618,
									"src": "22034:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5418,
										"nodeType": "Block",
										"src": "22293:99:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c737472696e672c616464726573732c737472696e6729",
																	"id": 5410,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "22337:33:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_f898577fdc87bf80b54b2b838f8b58bf5a74554c7beeb61b98f3c2b7d59f31e2",
																		"typeString": "literal_string \"log(uint,string,address,string)\""
																	},
																	"value": "log(uint,string,address,string)"
																},
																{
																	"id": 5411,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5398,
																	"src": "22372:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5412,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5400,
																	"src": "22376:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 5413,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5402,
																	"src": "22380:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 5414,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5404,
																	"src": "22384:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_f898577fdc87bf80b54b2b838f8b58bf5a74554c7beeb61b98f3c2b7d59f31e2",
																		"typeString": "literal_string \"log(uint,string,address,string)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 5408,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "22313:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5409,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "22313:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5415,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "22313:74:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5407,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "22297:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5416,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "22297:91:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5417,
												"nodeType": "ExpressionStatement",
												"src": "22297:91:12"
											}
										]
									},
									"id": 5419,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "22218:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5405,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5398,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "22227:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5419,
												"src": "22222:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5397,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "22222:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5400,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "22245:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5419,
												"src": "22231:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5399,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "22231:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5402,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "22257:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5419,
												"src": "22249:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 5401,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "22249:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5404,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "22275:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5419,
												"src": "22261:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5403,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "22261:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "22221:57:12"
									},
									"returnParameters": {
										"id": 5406,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "22293:0:12"
									},
									"scope": 10618,
									"src": "22209:183:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5441,
										"nodeType": "Block",
										"src": "22470:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c737472696e672c616464726573732c626f6f6c29",
																	"id": 5433,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "22514:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_f93fff378483bab1a84a8ae346090ff91e793863821a5430c45153390c3262e1",
																		"typeString": "literal_string \"log(uint,string,address,bool)\""
																	},
																	"value": "log(uint,string,address,bool)"
																},
																{
																	"id": 5434,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5421,
																	"src": "22547:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5435,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5423,
																	"src": "22551:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 5436,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5425,
																	"src": "22555:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 5437,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5427,
																	"src": "22559:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_f93fff378483bab1a84a8ae346090ff91e793863821a5430c45153390c3262e1",
																		"typeString": "literal_string \"log(uint,string,address,bool)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 5431,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "22490:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5432,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "22490:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5438,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "22490:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5430,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "22474:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5439,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "22474:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5440,
												"nodeType": "ExpressionStatement",
												"src": "22474:89:12"
											}
										]
									},
									"id": 5442,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "22404:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5428,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5421,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "22413:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5442,
												"src": "22408:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5420,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "22408:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5423,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "22431:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5442,
												"src": "22417:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5422,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "22417:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5425,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "22443:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5442,
												"src": "22435:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 5424,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "22435:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5427,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "22452:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5442,
												"src": "22447:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5426,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "22447:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "22407:48:12"
									},
									"returnParameters": {
										"id": 5429,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "22470:0:12"
									},
									"scope": 10618,
									"src": "22395:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5464,
										"nodeType": "Block",
										"src": "22648:100:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c737472696e672c616464726573732c6164647265737329",
																	"id": 5456,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "22692:34:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_7fa5458bb859a8b444c46f9915b7879afe7e200298580a00c5813ecf5c0a77cb",
																		"typeString": "literal_string \"log(uint,string,address,address)\""
																	},
																	"value": "log(uint,string,address,address)"
																},
																{
																	"id": 5457,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5444,
																	"src": "22728:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5458,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5446,
																	"src": "22732:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 5459,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5448,
																	"src": "22736:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 5460,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5450,
																	"src": "22740:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_7fa5458bb859a8b444c46f9915b7879afe7e200298580a00c5813ecf5c0a77cb",
																		"typeString": "literal_string \"log(uint,string,address,address)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 5454,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "22668:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5455,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "22668:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5461,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "22668:75:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5453,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "22652:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5462,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "22652:92:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5463,
												"nodeType": "ExpressionStatement",
												"src": "22652:92:12"
											}
										]
									},
									"id": 5465,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "22579:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5451,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5444,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "22588:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5465,
												"src": "22583:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5443,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "22583:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5446,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "22606:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5465,
												"src": "22592:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5445,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "22592:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5448,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "22618:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5465,
												"src": "22610:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 5447,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "22610:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5450,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "22630:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5465,
												"src": "22622:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 5449,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "22622:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "22582:51:12"
									},
									"returnParameters": {
										"id": 5452,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "22648:0:12"
									},
									"scope": 10618,
									"src": "22570:178:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5487,
										"nodeType": "Block",
										"src": "22814:92:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c626f6f6c2c75696e742c75696e7429",
																	"id": 5479,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "22858:26:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_56828da42a6ecdc94480e6d223af96b676cdc4ca9a00b1d88a7646ef1e12541e",
																		"typeString": "literal_string \"log(uint,bool,uint,uint)\""
																	},
																	"value": "log(uint,bool,uint,uint)"
																},
																{
																	"id": 5480,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5467,
																	"src": "22886:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5481,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5469,
																	"src": "22890:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 5482,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5471,
																	"src": "22894:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5483,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5473,
																	"src": "22898:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_56828da42a6ecdc94480e6d223af96b676cdc4ca9a00b1d88a7646ef1e12541e",
																		"typeString": "literal_string \"log(uint,bool,uint,uint)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 5477,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "22834:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5478,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "22834:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5484,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "22834:67:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5476,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "22818:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5485,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "22818:84:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5486,
												"nodeType": "ExpressionStatement",
												"src": "22818:84:12"
											}
										]
									},
									"id": 5488,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "22760:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5474,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5467,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "22769:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5488,
												"src": "22764:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5466,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "22764:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5469,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "22778:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5488,
												"src": "22773:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5468,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "22773:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5471,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "22787:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5488,
												"src": "22782:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5470,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "22782:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5473,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "22796:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5488,
												"src": "22791:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5472,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "22791:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "22763:36:12"
									},
									"returnParameters": {
										"id": 5475,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "22814:0:12"
									},
									"scope": 10618,
									"src": "22751:155:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5510,
										"nodeType": "Block",
										"src": "22981:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c626f6f6c2c75696e742c737472696e6729",
																	"id": 5502,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "23025:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_e8ddbc56b4712607102717eb35a3ee6aa0309358d07a4257a282d4a44ceb2f63",
																		"typeString": "literal_string \"log(uint,bool,uint,string)\""
																	},
																	"value": "log(uint,bool,uint,string)"
																},
																{
																	"id": 5503,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5490,
																	"src": "23055:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5504,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5492,
																	"src": "23059:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 5505,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5494,
																	"src": "23063:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5506,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5496,
																	"src": "23067:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_e8ddbc56b4712607102717eb35a3ee6aa0309358d07a4257a282d4a44ceb2f63",
																		"typeString": "literal_string \"log(uint,bool,uint,string)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 5500,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "23001:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5501,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "23001:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5507,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "23001:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5499,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "22985:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5508,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "22985:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5509,
												"nodeType": "ExpressionStatement",
												"src": "22985:86:12"
											}
										]
									},
									"id": 5511,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "22918:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5497,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5490,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "22927:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5511,
												"src": "22922:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5489,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "22922:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5492,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "22936:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5511,
												"src": "22931:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5491,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "22931:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5494,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "22945:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5511,
												"src": "22940:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5493,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "22940:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5496,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "22963:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5511,
												"src": "22949:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5495,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "22949:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "22921:45:12"
									},
									"returnParameters": {
										"id": 5498,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "22981:0:12"
									},
									"scope": 10618,
									"src": "22909:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5533,
										"nodeType": "Block",
										"src": "23141:92:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c626f6f6c2c75696e742c626f6f6c29",
																	"id": 5525,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "23185:26:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_d2abc4fdef6f35f3785755f2ca3a26416b52c0c4c5ad8b27342fc84a56532f2f",
																		"typeString": "literal_string \"log(uint,bool,uint,bool)\""
																	},
																	"value": "log(uint,bool,uint,bool)"
																},
																{
																	"id": 5526,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5513,
																	"src": "23213:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5527,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5515,
																	"src": "23217:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 5528,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5517,
																	"src": "23221:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5529,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5519,
																	"src": "23225:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_d2abc4fdef6f35f3785755f2ca3a26416b52c0c4c5ad8b27342fc84a56532f2f",
																		"typeString": "literal_string \"log(uint,bool,uint,bool)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 5523,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "23161:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5524,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "23161:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5530,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "23161:67:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5522,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "23145:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5531,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "23145:84:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5532,
												"nodeType": "ExpressionStatement",
												"src": "23145:84:12"
											}
										]
									},
									"id": 5534,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "23087:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5520,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5513,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "23096:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5534,
												"src": "23091:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5512,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "23091:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5515,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "23105:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5534,
												"src": "23100:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5514,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "23100:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5517,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "23114:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5534,
												"src": "23109:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5516,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "23109:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5519,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "23123:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5534,
												"src": "23118:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5518,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "23118:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "23090:36:12"
									},
									"returnParameters": {
										"id": 5521,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "23141:0:12"
									},
									"scope": 10618,
									"src": "23078:155:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5556,
										"nodeType": "Block",
										"src": "23302:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c626f6f6c2c75696e742c6164647265737329",
																	"id": 5548,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "23346:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_4f40058ea8927b23c60661eeb28f54d3ce10f5f6cdd8e3ce445d34409ceb50a3",
																		"typeString": "literal_string \"log(uint,bool,uint,address)\""
																	},
																	"value": "log(uint,bool,uint,address)"
																},
																{
																	"id": 5549,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5536,
																	"src": "23377:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5550,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5538,
																	"src": "23381:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 5551,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5540,
																	"src": "23385:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5552,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5542,
																	"src": "23389:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_4f40058ea8927b23c60661eeb28f54d3ce10f5f6cdd8e3ce445d34409ceb50a3",
																		"typeString": "literal_string \"log(uint,bool,uint,address)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 5546,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "23322:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5547,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "23322:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5553,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "23322:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5545,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "23306:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5554,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "23306:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5555,
												"nodeType": "ExpressionStatement",
												"src": "23306:87:12"
											}
										]
									},
									"id": 5557,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "23245:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5543,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5536,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "23254:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5557,
												"src": "23249:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5535,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "23249:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5538,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "23263:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5557,
												"src": "23258:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5537,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "23258:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5540,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "23272:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5557,
												"src": "23267:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5539,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "23267:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5542,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "23284:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5557,
												"src": "23276:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 5541,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "23276:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "23248:39:12"
									},
									"returnParameters": {
										"id": 5544,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "23302:0:12"
									},
									"scope": 10618,
									"src": "23236:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5579,
										"nodeType": "Block",
										"src": "23472:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c626f6f6c2c737472696e672c75696e7429",
																	"id": 5571,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "23516:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_915fdb28841654f5e04882ad0aa4f5de28bd90db1a700dae8b1eb5e67e36a012",
																		"typeString": "literal_string \"log(uint,bool,string,uint)\""
																	},
																	"value": "log(uint,bool,string,uint)"
																},
																{
																	"id": 5572,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5559,
																	"src": "23546:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5573,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5561,
																	"src": "23550:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 5574,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5563,
																	"src": "23554:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 5575,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5565,
																	"src": "23558:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_915fdb28841654f5e04882ad0aa4f5de28bd90db1a700dae8b1eb5e67e36a012",
																		"typeString": "literal_string \"log(uint,bool,string,uint)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 5569,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "23492:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5570,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "23492:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5576,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "23492:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5568,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "23476:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5577,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "23476:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5578,
												"nodeType": "ExpressionStatement",
												"src": "23476:86:12"
											}
										]
									},
									"id": 5580,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "23409:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5566,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5559,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "23418:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5580,
												"src": "23413:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5558,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "23413:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5561,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "23427:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5580,
												"src": "23422:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5560,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "23422:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5563,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "23445:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5580,
												"src": "23431:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5562,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "23431:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5565,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "23454:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5580,
												"src": "23449:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5564,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "23449:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "23412:45:12"
									},
									"returnParameters": {
										"id": 5567,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "23472:0:12"
									},
									"scope": 10618,
									"src": "23400:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5602,
										"nodeType": "Block",
										"src": "23650:96:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c626f6f6c2c737472696e672c737472696e6729",
																	"id": 5594,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "23694:30:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_a433fcfd538cd0e077747fbb2c5a6453c1804c6ad4af653273e0d14ab4a0566a",
																		"typeString": "literal_string \"log(uint,bool,string,string)\""
																	},
																	"value": "log(uint,bool,string,string)"
																},
																{
																	"id": 5595,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5582,
																	"src": "23726:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5596,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5584,
																	"src": "23730:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 5597,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5586,
																	"src": "23734:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 5598,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5588,
																	"src": "23738:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_a433fcfd538cd0e077747fbb2c5a6453c1804c6ad4af653273e0d14ab4a0566a",
																		"typeString": "literal_string \"log(uint,bool,string,string)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 5592,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "23670:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5593,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "23670:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5599,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "23670:71:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5591,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "23654:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5600,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "23654:88:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5601,
												"nodeType": "ExpressionStatement",
												"src": "23654:88:12"
											}
										]
									},
									"id": 5603,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "23578:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5589,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5582,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "23587:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5603,
												"src": "23582:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5581,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "23582:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5584,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "23596:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5603,
												"src": "23591:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5583,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "23591:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5586,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "23614:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5603,
												"src": "23600:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5585,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "23600:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5588,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "23632:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5603,
												"src": "23618:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5587,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "23618:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "23581:54:12"
									},
									"returnParameters": {
										"id": 5590,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "23650:0:12"
									},
									"scope": 10618,
									"src": "23569:177:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5625,
										"nodeType": "Block",
										"src": "23821:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c626f6f6c2c737472696e672c626f6f6c29",
																	"id": 5617,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "23865:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_346eb8c74221bcb2c0a69b8dde628b7e6175c4f090782c8f07996b251212e22d",
																		"typeString": "literal_string \"log(uint,bool,string,bool)\""
																	},
																	"value": "log(uint,bool,string,bool)"
																},
																{
																	"id": 5618,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5605,
																	"src": "23895:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5619,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5607,
																	"src": "23899:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 5620,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5609,
																	"src": "23903:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 5621,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5611,
																	"src": "23907:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_346eb8c74221bcb2c0a69b8dde628b7e6175c4f090782c8f07996b251212e22d",
																		"typeString": "literal_string \"log(uint,bool,string,bool)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 5615,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "23841:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5616,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "23841:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5622,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "23841:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5614,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "23825:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5623,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "23825:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5624,
												"nodeType": "ExpressionStatement",
												"src": "23825:86:12"
											}
										]
									},
									"id": 5626,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "23758:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5612,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5605,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "23767:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5626,
												"src": "23762:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5604,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "23762:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5607,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "23776:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5626,
												"src": "23771:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5606,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "23771:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5609,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "23794:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5626,
												"src": "23780:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5608,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "23780:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5611,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "23803:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5626,
												"src": "23798:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5610,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "23798:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "23761:45:12"
									},
									"returnParameters": {
										"id": 5613,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "23821:0:12"
									},
									"scope": 10618,
									"src": "23749:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5648,
										"nodeType": "Block",
										"src": "23993:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c626f6f6c2c737472696e672c6164647265737329",
																	"id": 5640,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "24037:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_496e2bb45f5cdd3680c3e807c53955b9de163e898851c7844433c0a9c91dcd9d",
																		"typeString": "literal_string \"log(uint,bool,string,address)\""
																	},
																	"value": "log(uint,bool,string,address)"
																},
																{
																	"id": 5641,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5628,
																	"src": "24070:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5642,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5630,
																	"src": "24074:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 5643,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5632,
																	"src": "24078:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 5644,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5634,
																	"src": "24082:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_496e2bb45f5cdd3680c3e807c53955b9de163e898851c7844433c0a9c91dcd9d",
																		"typeString": "literal_string \"log(uint,bool,string,address)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 5638,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "24013:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5639,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "24013:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5645,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "24013:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5637,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "23997:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5646,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "23997:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5647,
												"nodeType": "ExpressionStatement",
												"src": "23997:89:12"
											}
										]
									},
									"id": 5649,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "23927:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5635,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5628,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "23936:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5649,
												"src": "23931:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5627,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "23931:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5630,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "23945:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5649,
												"src": "23940:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5629,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "23940:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5632,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "23963:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5649,
												"src": "23949:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5631,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "23949:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5634,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "23975:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5649,
												"src": "23967:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 5633,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "23967:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "23930:48:12"
									},
									"returnParameters": {
										"id": 5636,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "23993:0:12"
									},
									"scope": 10618,
									"src": "23918:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5671,
										"nodeType": "Block",
										"src": "24156:92:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c626f6f6c2c626f6f6c2c75696e7429",
																	"id": 5663,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "24200:26:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_bd25ad5987e2f3e90d5ff2c9e0dad802782e9040e45e823722ccf598278cf7ed",
																		"typeString": "literal_string \"log(uint,bool,bool,uint)\""
																	},
																	"value": "log(uint,bool,bool,uint)"
																},
																{
																	"id": 5664,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5651,
																	"src": "24228:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5665,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5653,
																	"src": "24232:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 5666,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5655,
																	"src": "24236:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 5667,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5657,
																	"src": "24240:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_bd25ad5987e2f3e90d5ff2c9e0dad802782e9040e45e823722ccf598278cf7ed",
																		"typeString": "literal_string \"log(uint,bool,bool,uint)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 5661,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "24176:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5662,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "24176:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5668,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "24176:67:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5660,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "24160:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5669,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "24160:84:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5670,
												"nodeType": "ExpressionStatement",
												"src": "24160:84:12"
											}
										]
									},
									"id": 5672,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "24102:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5658,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5651,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "24111:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5672,
												"src": "24106:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5650,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "24106:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5653,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "24120:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5672,
												"src": "24115:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5652,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "24115:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5655,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "24129:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5672,
												"src": "24124:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5654,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "24124:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5657,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "24138:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5672,
												"src": "24133:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5656,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "24133:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "24105:36:12"
									},
									"returnParameters": {
										"id": 5659,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "24156:0:12"
									},
									"scope": 10618,
									"src": "24093:155:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5694,
										"nodeType": "Block",
										"src": "24323:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c626f6f6c2c626f6f6c2c737472696e6729",
																	"id": 5686,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "24367:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_318ae59b506d4efe5cd02b34be9f24009f0134ab1136defc4789a09e425a8861",
																		"typeString": "literal_string \"log(uint,bool,bool,string)\""
																	},
																	"value": "log(uint,bool,bool,string)"
																},
																{
																	"id": 5687,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5674,
																	"src": "24397:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5688,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5676,
																	"src": "24401:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 5689,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5678,
																	"src": "24405:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 5690,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5680,
																	"src": "24409:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_318ae59b506d4efe5cd02b34be9f24009f0134ab1136defc4789a09e425a8861",
																		"typeString": "literal_string \"log(uint,bool,bool,string)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 5684,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "24343:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5685,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "24343:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5691,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "24343:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5683,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "24327:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5692,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "24327:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5693,
												"nodeType": "ExpressionStatement",
												"src": "24327:86:12"
											}
										]
									},
									"id": 5695,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "24260:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5681,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5674,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "24269:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5695,
												"src": "24264:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5673,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "24264:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5676,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "24278:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5695,
												"src": "24273:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5675,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "24273:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5678,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "24287:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5695,
												"src": "24282:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5677,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "24282:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5680,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "24305:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5695,
												"src": "24291:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5679,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "24291:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "24263:45:12"
									},
									"returnParameters": {
										"id": 5682,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "24323:0:12"
									},
									"scope": 10618,
									"src": "24251:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5717,
										"nodeType": "Block",
										"src": "24483:92:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c626f6f6c2c626f6f6c2c626f6f6c29",
																	"id": 5709,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "24527:26:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_4e6c5315e6998332ba87ae2545bc72447c94349a51e999446a98bfab04167b32",
																		"typeString": "literal_string \"log(uint,bool,bool,bool)\""
																	},
																	"value": "log(uint,bool,bool,bool)"
																},
																{
																	"id": 5710,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5697,
																	"src": "24555:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5711,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5699,
																	"src": "24559:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 5712,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5701,
																	"src": "24563:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 5713,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5703,
																	"src": "24567:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_4e6c5315e6998332ba87ae2545bc72447c94349a51e999446a98bfab04167b32",
																		"typeString": "literal_string \"log(uint,bool,bool,bool)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 5707,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "24503:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5708,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "24503:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5714,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "24503:67:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5706,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "24487:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5715,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "24487:84:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5716,
												"nodeType": "ExpressionStatement",
												"src": "24487:84:12"
											}
										]
									},
									"id": 5718,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "24429:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5704,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5697,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "24438:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5718,
												"src": "24433:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5696,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "24433:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5699,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "24447:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5718,
												"src": "24442:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5698,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "24442:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5701,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "24456:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5718,
												"src": "24451:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5700,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "24451:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5703,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "24465:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5718,
												"src": "24460:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5702,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "24460:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "24432:36:12"
									},
									"returnParameters": {
										"id": 5705,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "24483:0:12"
									},
									"scope": 10618,
									"src": "24420:155:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5740,
										"nodeType": "Block",
										"src": "24644:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c626f6f6c2c626f6f6c2c6164647265737329",
																	"id": 5732,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "24688:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_5306225d3f6a0c340e12a634d8571b24a659d0fdcb96dd45e3bd062feb68355b",
																		"typeString": "literal_string \"log(uint,bool,bool,address)\""
																	},
																	"value": "log(uint,bool,bool,address)"
																},
																{
																	"id": 5733,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5720,
																	"src": "24719:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5734,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5722,
																	"src": "24723:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 5735,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5724,
																	"src": "24727:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 5736,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5726,
																	"src": "24731:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_5306225d3f6a0c340e12a634d8571b24a659d0fdcb96dd45e3bd062feb68355b",
																		"typeString": "literal_string \"log(uint,bool,bool,address)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 5730,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "24664:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5731,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "24664:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5737,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "24664:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5729,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "24648:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5738,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "24648:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5739,
												"nodeType": "ExpressionStatement",
												"src": "24648:87:12"
											}
										]
									},
									"id": 5741,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "24587:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5727,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5720,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "24596:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5741,
												"src": "24591:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5719,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "24591:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5722,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "24605:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5741,
												"src": "24600:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5721,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "24600:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5724,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "24614:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5741,
												"src": "24609:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5723,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "24609:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5726,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "24626:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5741,
												"src": "24618:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 5725,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "24618:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "24590:39:12"
									},
									"returnParameters": {
										"id": 5728,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "24644:0:12"
									},
									"scope": 10618,
									"src": "24578:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5763,
										"nodeType": "Block",
										"src": "24808:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c626f6f6c2c616464726573732c75696e7429",
																	"id": 5755,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "24852:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_41b5ef3bc57cb6072d9bbab757f04e68fb78a6a8b29741a7b963761abce32fb1",
																		"typeString": "literal_string \"log(uint,bool,address,uint)\""
																	},
																	"value": "log(uint,bool,address,uint)"
																},
																{
																	"id": 5756,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5743,
																	"src": "24883:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5757,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5745,
																	"src": "24887:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 5758,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5747,
																	"src": "24891:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 5759,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5749,
																	"src": "24895:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_41b5ef3bc57cb6072d9bbab757f04e68fb78a6a8b29741a7b963761abce32fb1",
																		"typeString": "literal_string \"log(uint,bool,address,uint)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 5753,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "24828:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5754,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "24828:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5760,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "24828:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5752,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "24812:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5761,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "24812:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5762,
												"nodeType": "ExpressionStatement",
												"src": "24812:87:12"
											}
										]
									},
									"id": 5764,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "24751:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5750,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5743,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "24760:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5764,
												"src": "24755:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5742,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "24755:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5745,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "24769:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5764,
												"src": "24764:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5744,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "24764:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5747,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "24781:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5764,
												"src": "24773:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 5746,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "24773:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5749,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "24790:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5764,
												"src": "24785:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5748,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "24785:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "24754:39:12"
									},
									"returnParameters": {
										"id": 5751,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "24808:0:12"
									},
									"scope": 10618,
									"src": "24742:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5786,
										"nodeType": "Block",
										"src": "24981:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c626f6f6c2c616464726573732c737472696e6729",
																	"id": 5778,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "25025:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_a230761e3811ae33e11d91e6667cf79e7e0ce8023ec276bdd69859f68587933c",
																		"typeString": "literal_string \"log(uint,bool,address,string)\""
																	},
																	"value": "log(uint,bool,address,string)"
																},
																{
																	"id": 5779,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5766,
																	"src": "25058:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5780,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5768,
																	"src": "25062:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 5781,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5770,
																	"src": "25066:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 5782,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5772,
																	"src": "25070:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_a230761e3811ae33e11d91e6667cf79e7e0ce8023ec276bdd69859f68587933c",
																		"typeString": "literal_string \"log(uint,bool,address,string)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 5776,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "25001:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5777,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "25001:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5783,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "25001:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5775,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "24985:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5784,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "24985:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5785,
												"nodeType": "ExpressionStatement",
												"src": "24985:89:12"
											}
										]
									},
									"id": 5787,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "24915:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5773,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5766,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "24924:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5787,
												"src": "24919:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5765,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "24919:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5768,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "24933:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5787,
												"src": "24928:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5767,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "24928:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5770,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "24945:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5787,
												"src": "24937:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 5769,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "24937:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5772,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "24963:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5787,
												"src": "24949:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5771,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "24949:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "24918:48:12"
									},
									"returnParameters": {
										"id": 5774,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "24981:0:12"
									},
									"scope": 10618,
									"src": "24906:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5809,
										"nodeType": "Block",
										"src": "25147:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c626f6f6c2c616464726573732c626f6f6c29",
																	"id": 5801,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "25191:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_91fb124272873b32f25c28f6935451e3d46ffd78ac8ebaaa0e096a7942db5445",
																		"typeString": "literal_string \"log(uint,bool,address,bool)\""
																	},
																	"value": "log(uint,bool,address,bool)"
																},
																{
																	"id": 5802,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5789,
																	"src": "25222:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5803,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5791,
																	"src": "25226:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 5804,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5793,
																	"src": "25230:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 5805,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5795,
																	"src": "25234:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_91fb124272873b32f25c28f6935451e3d46ffd78ac8ebaaa0e096a7942db5445",
																		"typeString": "literal_string \"log(uint,bool,address,bool)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 5799,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "25167:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5800,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "25167:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5806,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "25167:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5798,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "25151:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5807,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "25151:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5808,
												"nodeType": "ExpressionStatement",
												"src": "25151:87:12"
											}
										]
									},
									"id": 5810,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "25090:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5796,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5789,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "25099:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5810,
												"src": "25094:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5788,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "25094:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5791,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "25108:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5810,
												"src": "25103:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5790,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "25103:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5793,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "25120:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5810,
												"src": "25112:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 5792,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "25112:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5795,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "25129:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5810,
												"src": "25124:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5794,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "25124:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "25093:39:12"
									},
									"returnParameters": {
										"id": 5797,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "25147:0:12"
									},
									"scope": 10618,
									"src": "25081:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5832,
										"nodeType": "Block",
										"src": "25314:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c626f6f6c2c616464726573732c6164647265737329",
																	"id": 5824,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "25358:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_86edc10cd85187c3b3f180e68e570c794e768808cdffe5158045d6f841ae33f2",
																		"typeString": "literal_string \"log(uint,bool,address,address)\""
																	},
																	"value": "log(uint,bool,address,address)"
																},
																{
																	"id": 5825,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5812,
																	"src": "25392:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5826,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5814,
																	"src": "25396:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 5827,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5816,
																	"src": "25400:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 5828,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5818,
																	"src": "25404:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_86edc10cd85187c3b3f180e68e570c794e768808cdffe5158045d6f841ae33f2",
																		"typeString": "literal_string \"log(uint,bool,address,address)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 5822,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "25334:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5823,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "25334:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5829,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "25334:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5821,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "25318:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5830,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "25318:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5831,
												"nodeType": "ExpressionStatement",
												"src": "25318:90:12"
											}
										]
									},
									"id": 5833,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "25254:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5819,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5812,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "25263:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5833,
												"src": "25258:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5811,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "25258:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5814,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "25272:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5833,
												"src": "25267:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5813,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "25267:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5816,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "25284:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5833,
												"src": "25276:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 5815,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "25276:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5818,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "25296:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5833,
												"src": "25288:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 5817,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "25288:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "25257:42:12"
									},
									"returnParameters": {
										"id": 5820,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "25314:0:12"
									},
									"scope": 10618,
									"src": "25245:167:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5855,
										"nodeType": "Block",
										"src": "25481:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c616464726573732c75696e742c75696e7429",
																	"id": 5847,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "25525:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_ca9a3eb4a61979ee5cc1814fa8df2504ab7831148afaa3d4c17622578eab7412",
																		"typeString": "literal_string \"log(uint,address,uint,uint)\""
																	},
																	"value": "log(uint,address,uint,uint)"
																},
																{
																	"id": 5848,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5835,
																	"src": "25556:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5849,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5837,
																	"src": "25560:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 5850,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5839,
																	"src": "25564:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5851,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5841,
																	"src": "25568:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_ca9a3eb4a61979ee5cc1814fa8df2504ab7831148afaa3d4c17622578eab7412",
																		"typeString": "literal_string \"log(uint,address,uint,uint)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 5845,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "25501:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5846,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "25501:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5852,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "25501:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5844,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "25485:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5853,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "25485:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5854,
												"nodeType": "ExpressionStatement",
												"src": "25485:87:12"
											}
										]
									},
									"id": 5856,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "25424:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5842,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5835,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "25433:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5856,
												"src": "25428:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5834,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "25428:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5837,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "25445:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5856,
												"src": "25437:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 5836,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "25437:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5839,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "25454:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5856,
												"src": "25449:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5838,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "25449:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5841,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "25463:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5856,
												"src": "25458:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5840,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "25458:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "25427:39:12"
									},
									"returnParameters": {
										"id": 5843,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "25481:0:12"
									},
									"scope": 10618,
									"src": "25415:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5878,
										"nodeType": "Block",
										"src": "25654:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c616464726573732c75696e742c737472696e6729",
																	"id": 5870,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "25698:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_3ed3bd282d1a27244fa4d3668aff783448c1a1864ff920057fa9f1c8144bb10b",
																		"typeString": "literal_string \"log(uint,address,uint,string)\""
																	},
																	"value": "log(uint,address,uint,string)"
																},
																{
																	"id": 5871,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5858,
																	"src": "25731:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5872,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5860,
																	"src": "25735:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 5873,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5862,
																	"src": "25739:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5874,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5864,
																	"src": "25743:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_3ed3bd282d1a27244fa4d3668aff783448c1a1864ff920057fa9f1c8144bb10b",
																		"typeString": "literal_string \"log(uint,address,uint,string)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 5868,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "25674:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5869,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "25674:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5875,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "25674:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5867,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "25658:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5876,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "25658:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5877,
												"nodeType": "ExpressionStatement",
												"src": "25658:89:12"
											}
										]
									},
									"id": 5879,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "25588:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5865,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5858,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "25597:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5879,
												"src": "25592:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5857,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "25592:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5860,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "25609:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5879,
												"src": "25601:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 5859,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "25601:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5862,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "25618:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5879,
												"src": "25613:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5861,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "25613:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5864,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "25636:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5879,
												"src": "25622:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5863,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "25622:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "25591:48:12"
									},
									"returnParameters": {
										"id": 5866,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "25654:0:12"
									},
									"scope": 10618,
									"src": "25579:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5901,
										"nodeType": "Block",
										"src": "25820:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c616464726573732c75696e742c626f6f6c29",
																	"id": 5893,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "25864:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_19f67369d42bc0582d07ae744348ad46b79a6c16f354e3d3fb3c6bff2ecfa9f8",
																		"typeString": "literal_string \"log(uint,address,uint,bool)\""
																	},
																	"value": "log(uint,address,uint,bool)"
																},
																{
																	"id": 5894,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5881,
																	"src": "25895:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5895,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5883,
																	"src": "25899:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 5896,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5885,
																	"src": "25903:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5897,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5887,
																	"src": "25907:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_19f67369d42bc0582d07ae744348ad46b79a6c16f354e3d3fb3c6bff2ecfa9f8",
																		"typeString": "literal_string \"log(uint,address,uint,bool)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 5891,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "25840:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5892,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "25840:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5898,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "25840:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5890,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "25824:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5899,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "25824:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5900,
												"nodeType": "ExpressionStatement",
												"src": "25824:87:12"
											}
										]
									},
									"id": 5902,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "25763:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5888,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5881,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "25772:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5902,
												"src": "25767:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5880,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "25767:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5883,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "25784:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5902,
												"src": "25776:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 5882,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "25776:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5885,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "25793:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5902,
												"src": "25788:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5884,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "25788:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5887,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "25802:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5902,
												"src": "25797:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5886,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "25797:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "25766:39:12"
									},
									"returnParameters": {
										"id": 5889,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "25820:0:12"
									},
									"scope": 10618,
									"src": "25754:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5924,
										"nodeType": "Block",
										"src": "25987:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c616464726573732c75696e742c6164647265737329",
																	"id": 5916,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "26031:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_fdb2ecd415c75df8f66285a054607fa1335126fb1d8930dfc21744a3de7298e3",
																		"typeString": "literal_string \"log(uint,address,uint,address)\""
																	},
																	"value": "log(uint,address,uint,address)"
																},
																{
																	"id": 5917,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5904,
																	"src": "26065:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5918,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5906,
																	"src": "26069:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 5919,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5908,
																	"src": "26073:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5920,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5910,
																	"src": "26077:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_fdb2ecd415c75df8f66285a054607fa1335126fb1d8930dfc21744a3de7298e3",
																		"typeString": "literal_string \"log(uint,address,uint,address)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 5914,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "26007:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5915,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "26007:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5921,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "26007:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5913,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "25991:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5922,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "25991:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5923,
												"nodeType": "ExpressionStatement",
												"src": "25991:90:12"
											}
										]
									},
									"id": 5925,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "25927:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5911,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5904,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "25936:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5925,
												"src": "25931:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5903,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "25931:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5906,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "25948:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5925,
												"src": "25940:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 5905,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "25940:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5908,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "25957:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5925,
												"src": "25952:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5907,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "25952:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5910,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "25969:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5925,
												"src": "25961:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 5909,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "25961:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "25930:42:12"
									},
									"returnParameters": {
										"id": 5912,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "25987:0:12"
									},
									"scope": 10618,
									"src": "25918:167:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5947,
										"nodeType": "Block",
										"src": "26163:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c616464726573732c737472696e672c75696e7429",
																	"id": 5939,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "26207:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_a0c414e8ba2ea65b865dd0bf68b2357e81261b47f237c68a4a8a63051bbef2eb",
																		"typeString": "literal_string \"log(uint,address,string,uint)\""
																	},
																	"value": "log(uint,address,string,uint)"
																},
																{
																	"id": 5940,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5927,
																	"src": "26240:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5941,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5929,
																	"src": "26244:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 5942,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5931,
																	"src": "26248:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 5943,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5933,
																	"src": "26252:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_a0c414e8ba2ea65b865dd0bf68b2357e81261b47f237c68a4a8a63051bbef2eb",
																		"typeString": "literal_string \"log(uint,address,string,uint)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 5937,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "26183:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5938,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "26183:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5944,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "26183:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5936,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "26167:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5945,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "26167:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5946,
												"nodeType": "ExpressionStatement",
												"src": "26167:89:12"
											}
										]
									},
									"id": 5948,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "26097:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5934,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5927,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "26106:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5948,
												"src": "26101:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5926,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "26101:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5929,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "26118:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5948,
												"src": "26110:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 5928,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "26110:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5931,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "26136:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5948,
												"src": "26122:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5930,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "26122:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5933,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "26145:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5948,
												"src": "26140:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5932,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "26140:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "26100:48:12"
									},
									"returnParameters": {
										"id": 5935,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "26163:0:12"
									},
									"scope": 10618,
									"src": "26088:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5970,
										"nodeType": "Block",
										"src": "26347:99:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c616464726573732c737472696e672c737472696e6729",
																	"id": 5962,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "26391:33:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_8d778624e1d83269ce0415864bb54677b540f778c6b8503cf9035bc7517326f1",
																		"typeString": "literal_string \"log(uint,address,string,string)\""
																	},
																	"value": "log(uint,address,string,string)"
																},
																{
																	"id": 5963,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5950,
																	"src": "26426:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5964,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5952,
																	"src": "26430:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 5965,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5954,
																	"src": "26434:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 5966,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5956,
																	"src": "26438:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_8d778624e1d83269ce0415864bb54677b540f778c6b8503cf9035bc7517326f1",
																		"typeString": "literal_string \"log(uint,address,string,string)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 5960,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "26367:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5961,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "26367:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5967,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "26367:74:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5959,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "26351:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5968,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "26351:91:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5969,
												"nodeType": "ExpressionStatement",
												"src": "26351:91:12"
											}
										]
									},
									"id": 5971,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "26272:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5957,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5950,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "26281:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5971,
												"src": "26276:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5949,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "26276:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5952,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "26293:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5971,
												"src": "26285:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 5951,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "26285:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5954,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "26311:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5971,
												"src": "26297:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5953,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "26297:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5956,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "26329:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5971,
												"src": "26315:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5955,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "26315:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "26275:57:12"
									},
									"returnParameters": {
										"id": 5958,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "26347:0:12"
									},
									"scope": 10618,
									"src": "26263:183:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 5993,
										"nodeType": "Block",
										"src": "26524:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c616464726573732c737472696e672c626f6f6c29",
																	"id": 5985,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "26568:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_22a479a660b74b7598155f369ed227a5a93527fbdb04ff6f78fbf35fa23aacbf",
																		"typeString": "literal_string \"log(uint,address,string,bool)\""
																	},
																	"value": "log(uint,address,string,bool)"
																},
																{
																	"id": 5986,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5973,
																	"src": "26601:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 5987,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5975,
																	"src": "26605:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 5988,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5977,
																	"src": "26609:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 5989,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5979,
																	"src": "26613:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_22a479a660b74b7598155f369ed227a5a93527fbdb04ff6f78fbf35fa23aacbf",
																		"typeString": "literal_string \"log(uint,address,string,bool)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 5983,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "26544:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 5984,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "26544:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 5990,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "26544:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 5982,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "26528:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 5991,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "26528:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 5992,
												"nodeType": "ExpressionStatement",
												"src": "26528:89:12"
											}
										]
									},
									"id": 5994,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "26458:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 5980,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5973,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "26467:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5994,
												"src": "26462:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5972,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "26462:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5975,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "26479:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5994,
												"src": "26471:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 5974,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "26471:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5977,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "26497:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5994,
												"src": "26483:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5976,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "26483:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5979,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "26506:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 5994,
												"src": "26501:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 5978,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "26501:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "26461:48:12"
									},
									"returnParameters": {
										"id": 5981,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "26524:0:12"
									},
									"scope": 10618,
									"src": "26449:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6016,
										"nodeType": "Block",
										"src": "26702:100:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c616464726573732c737472696e672c6164647265737329",
																	"id": 6008,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "26746:34:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_cbe58efddc067d74914c3479914810966ae688ac66ca2bbcae69cd9d0395796f",
																		"typeString": "literal_string \"log(uint,address,string,address)\""
																	},
																	"value": "log(uint,address,string,address)"
																},
																{
																	"id": 6009,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5996,
																	"src": "26782:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6010,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 5998,
																	"src": "26786:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 6011,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6000,
																	"src": "26790:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6012,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6002,
																	"src": "26794:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_cbe58efddc067d74914c3479914810966ae688ac66ca2bbcae69cd9d0395796f",
																		"typeString": "literal_string \"log(uint,address,string,address)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 6006,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "26722:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6007,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "26722:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6013,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "26722:75:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6005,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "26706:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6014,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "26706:92:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6015,
												"nodeType": "ExpressionStatement",
												"src": "26706:92:12"
											}
										]
									},
									"id": 6017,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "26633:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6003,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 5996,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "26642:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6017,
												"src": "26637:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 5995,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "26637:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 5998,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "26654:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6017,
												"src": "26646:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 5997,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "26646:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6000,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "26672:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6017,
												"src": "26658:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 5999,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "26658:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6002,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "26684:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6017,
												"src": "26676:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6001,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "26676:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "26636:51:12"
									},
									"returnParameters": {
										"id": 6004,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "26702:0:12"
									},
									"scope": 10618,
									"src": "26624:178:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6039,
										"nodeType": "Block",
										"src": "26871:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c616464726573732c626f6f6c2c75696e7429",
																	"id": 6031,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "26915:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_7b08e8ebd6be8a04c54551194ba5143f1a555d43fe60d53843383a9915eeccb2",
																		"typeString": "literal_string \"log(uint,address,bool,uint)\""
																	},
																	"value": "log(uint,address,bool,uint)"
																},
																{
																	"id": 6032,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6019,
																	"src": "26946:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6033,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6021,
																	"src": "26950:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 6034,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6023,
																	"src": "26954:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 6035,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6025,
																	"src": "26958:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_7b08e8ebd6be8a04c54551194ba5143f1a555d43fe60d53843383a9915eeccb2",
																		"typeString": "literal_string \"log(uint,address,bool,uint)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 6029,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "26891:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6030,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "26891:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6036,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "26891:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6028,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "26875:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6037,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "26875:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6038,
												"nodeType": "ExpressionStatement",
												"src": "26875:87:12"
											}
										]
									},
									"id": 6040,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "26814:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6026,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6019,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "26823:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6040,
												"src": "26818:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6018,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "26818:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6021,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "26835:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6040,
												"src": "26827:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6020,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "26827:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6023,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "26844:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6040,
												"src": "26839:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 6022,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "26839:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6025,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "26853:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6040,
												"src": "26848:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6024,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "26848:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "26817:39:12"
									},
									"returnParameters": {
										"id": 6027,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "26871:0:12"
									},
									"scope": 10618,
									"src": "26805:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6062,
										"nodeType": "Block",
										"src": "27044:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c616464726573732c626f6f6c2c737472696e6729",
																	"id": 6054,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "27088:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_63f0e24221aeb6c531ea500a191ac35497bf48695fb29864fe57726a12d605c6",
																		"typeString": "literal_string \"log(uint,address,bool,string)\""
																	},
																	"value": "log(uint,address,bool,string)"
																},
																{
																	"id": 6055,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6042,
																	"src": "27121:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6056,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6044,
																	"src": "27125:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 6057,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6046,
																	"src": "27129:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 6058,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6048,
																	"src": "27133:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_63f0e24221aeb6c531ea500a191ac35497bf48695fb29864fe57726a12d605c6",
																		"typeString": "literal_string \"log(uint,address,bool,string)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 6052,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "27064:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6053,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "27064:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6059,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "27064:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6051,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "27048:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6060,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "27048:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6061,
												"nodeType": "ExpressionStatement",
												"src": "27048:89:12"
											}
										]
									},
									"id": 6063,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "26978:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6049,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6042,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "26987:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6063,
												"src": "26982:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6041,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "26982:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6044,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "26999:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6063,
												"src": "26991:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6043,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "26991:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6046,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "27008:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6063,
												"src": "27003:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 6045,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "27003:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6048,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "27026:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6063,
												"src": "27012:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6047,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "27012:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "26981:48:12"
									},
									"returnParameters": {
										"id": 6050,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "27044:0:12"
									},
									"scope": 10618,
									"src": "26969:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6085,
										"nodeType": "Block",
										"src": "27210:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c616464726573732c626f6f6c2c626f6f6c29",
																	"id": 6077,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "27254:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_7e27410dc86ab22a92f2a269c9cf538b707bde3ac248f933df1f4d0b76947d32",
																		"typeString": "literal_string \"log(uint,address,bool,bool)\""
																	},
																	"value": "log(uint,address,bool,bool)"
																},
																{
																	"id": 6078,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6065,
																	"src": "27285:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6079,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6067,
																	"src": "27289:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 6080,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6069,
																	"src": "27293:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 6081,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6071,
																	"src": "27297:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_7e27410dc86ab22a92f2a269c9cf538b707bde3ac248f933df1f4d0b76947d32",
																		"typeString": "literal_string \"log(uint,address,bool,bool)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 6075,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "27230:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6076,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "27230:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6082,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "27230:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6074,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "27214:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6083,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "27214:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6084,
												"nodeType": "ExpressionStatement",
												"src": "27214:87:12"
											}
										]
									},
									"id": 6086,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "27153:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6072,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6065,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "27162:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6086,
												"src": "27157:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6064,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "27157:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6067,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "27174:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6086,
												"src": "27166:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6066,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "27166:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6069,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "27183:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6086,
												"src": "27178:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 6068,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "27178:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6071,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "27192:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6086,
												"src": "27187:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 6070,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "27187:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "27156:39:12"
									},
									"returnParameters": {
										"id": 6073,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "27210:0:12"
									},
									"scope": 10618,
									"src": "27144:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6108,
										"nodeType": "Block",
										"src": "27377:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c616464726573732c626f6f6c2c6164647265737329",
																	"id": 6100,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "27421:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_b6313094a820841f3156e32d271c63cceded7f62875d471e1e87ef33ec252789",
																		"typeString": "literal_string \"log(uint,address,bool,address)\""
																	},
																	"value": "log(uint,address,bool,address)"
																},
																{
																	"id": 6101,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6088,
																	"src": "27455:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6102,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6090,
																	"src": "27459:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 6103,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6092,
																	"src": "27463:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 6104,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6094,
																	"src": "27467:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_b6313094a820841f3156e32d271c63cceded7f62875d471e1e87ef33ec252789",
																		"typeString": "literal_string \"log(uint,address,bool,address)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 6098,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "27397:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6099,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "27397:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6105,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "27397:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6097,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "27381:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6106,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "27381:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6107,
												"nodeType": "ExpressionStatement",
												"src": "27381:90:12"
											}
										]
									},
									"id": 6109,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "27317:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6095,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6088,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "27326:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6109,
												"src": "27321:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6087,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "27321:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6090,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "27338:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6109,
												"src": "27330:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6089,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "27330:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6092,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "27347:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6109,
												"src": "27342:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 6091,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "27342:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6094,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "27359:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6109,
												"src": "27351:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6093,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "27351:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "27320:42:12"
									},
									"returnParameters": {
										"id": 6096,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "27377:0:12"
									},
									"scope": 10618,
									"src": "27308:167:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6131,
										"nodeType": "Block",
										"src": "27547:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c616464726573732c616464726573732c75696e7429",
																	"id": 6123,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "27591:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_9a3cbf9603c94c357c6f62b7a32789d9ca5caa81518d1277c9ca986a5650734b",
																		"typeString": "literal_string \"log(uint,address,address,uint)\""
																	},
																	"value": "log(uint,address,address,uint)"
																},
																{
																	"id": 6124,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6111,
																	"src": "27625:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6125,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6113,
																	"src": "27629:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 6126,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6115,
																	"src": "27633:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 6127,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6117,
																	"src": "27637:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_9a3cbf9603c94c357c6f62b7a32789d9ca5caa81518d1277c9ca986a5650734b",
																		"typeString": "literal_string \"log(uint,address,address,uint)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 6121,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "27567:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6122,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "27567:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6128,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "27567:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6120,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "27551:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6129,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "27551:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6130,
												"nodeType": "ExpressionStatement",
												"src": "27551:90:12"
											}
										]
									},
									"id": 6132,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "27487:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6118,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6111,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "27496:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6132,
												"src": "27491:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6110,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "27491:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6113,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "27508:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6132,
												"src": "27500:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6112,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "27500:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6115,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "27520:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6132,
												"src": "27512:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6114,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "27512:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6117,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "27529:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6132,
												"src": "27524:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6116,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "27524:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "27490:42:12"
									},
									"returnParameters": {
										"id": 6119,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "27547:0:12"
									},
									"scope": 10618,
									"src": "27478:167:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6154,
										"nodeType": "Block",
										"src": "27726:100:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c616464726573732c616464726573732c737472696e6729",
																	"id": 6146,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "27770:34:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_7943dc6627d308affd474fe50b563bcfbf09518236383b806f11730459213622",
																		"typeString": "literal_string \"log(uint,address,address,string)\""
																	},
																	"value": "log(uint,address,address,string)"
																},
																{
																	"id": 6147,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6134,
																	"src": "27806:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6148,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6136,
																	"src": "27810:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 6149,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6138,
																	"src": "27814:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 6150,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6140,
																	"src": "27818:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_7943dc6627d308affd474fe50b563bcfbf09518236383b806f11730459213622",
																		"typeString": "literal_string \"log(uint,address,address,string)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 6144,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "27746:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6145,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "27746:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6151,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "27746:75:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6143,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "27730:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6152,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "27730:92:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6153,
												"nodeType": "ExpressionStatement",
												"src": "27730:92:12"
											}
										]
									},
									"id": 6155,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "27657:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6141,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6134,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "27666:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6155,
												"src": "27661:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6133,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "27661:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6136,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "27678:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6155,
												"src": "27670:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6135,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "27670:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6138,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "27690:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6155,
												"src": "27682:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6137,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "27682:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6140,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "27708:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6155,
												"src": "27694:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6139,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "27694:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "27660:51:12"
									},
									"returnParameters": {
										"id": 6142,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "27726:0:12"
									},
									"scope": 10618,
									"src": "27648:178:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6177,
										"nodeType": "Block",
										"src": "27898:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c616464726573732c616464726573732c626f6f6c29",
																	"id": 6169,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "27942:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_01550b04ea9916da7bc495d1b5ca5c4bd8d92ef3a98e2cca5a948cec5011f38c",
																		"typeString": "literal_string \"log(uint,address,address,bool)\""
																	},
																	"value": "log(uint,address,address,bool)"
																},
																{
																	"id": 6170,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6157,
																	"src": "27976:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6171,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6159,
																	"src": "27980:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 6172,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6161,
																	"src": "27984:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 6173,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6163,
																	"src": "27988:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_01550b04ea9916da7bc495d1b5ca5c4bd8d92ef3a98e2cca5a948cec5011f38c",
																		"typeString": "literal_string \"log(uint,address,address,bool)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 6167,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "27918:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6168,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "27918:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6174,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "27918:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6166,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "27902:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6175,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "27902:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6176,
												"nodeType": "ExpressionStatement",
												"src": "27902:90:12"
											}
										]
									},
									"id": 6178,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "27838:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6164,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6157,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "27847:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6178,
												"src": "27842:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6156,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "27842:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6159,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "27859:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6178,
												"src": "27851:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6158,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "27851:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6161,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "27871:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6178,
												"src": "27863:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6160,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "27863:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6163,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "27880:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6178,
												"src": "27875:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 6162,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "27875:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "27841:42:12"
									},
									"returnParameters": {
										"id": 6165,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "27898:0:12"
									},
									"scope": 10618,
									"src": "27829:167:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6200,
										"nodeType": "Block",
										"src": "28071:101:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f672875696e742c616464726573732c616464726573732c6164647265737329",
																	"id": 6192,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "28115:35:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_554745f9e6550eea6000ea2febc94de95d453100d5d60359e62cd398b366bfc4",
																		"typeString": "literal_string \"log(uint,address,address,address)\""
																	},
																	"value": "log(uint,address,address,address)"
																},
																{
																	"id": 6193,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6180,
																	"src": "28152:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6194,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6182,
																	"src": "28156:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 6195,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6184,
																	"src": "28160:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 6196,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6186,
																	"src": "28164:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_554745f9e6550eea6000ea2febc94de95d453100d5d60359e62cd398b366bfc4",
																		"typeString": "literal_string \"log(uint,address,address,address)\""
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 6190,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "28091:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6191,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "28091:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6197,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "28091:76:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6189,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "28075:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6198,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "28075:93:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6199,
												"nodeType": "ExpressionStatement",
												"src": "28075:93:12"
											}
										]
									},
									"id": 6201,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "28008:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6187,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6180,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "28017:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6201,
												"src": "28012:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6179,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "28012:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6182,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "28029:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6201,
												"src": "28021:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6181,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "28021:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6184,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "28041:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6201,
												"src": "28033:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6183,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "28033:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6186,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "28053:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6201,
												"src": "28045:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6185,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "28045:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "28011:45:12"
									},
									"returnParameters": {
										"id": 6188,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "28071:0:12"
									},
									"scope": 10618,
									"src": "27999:173:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6223,
										"nodeType": "Block",
										"src": "28247:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c75696e742c75696e742c75696e7429",
																	"id": 6215,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "28291:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_08ee5666d6bd329d27af528e563bb238dedf631fe471effe31c7123dcb5164f2",
																		"typeString": "literal_string \"log(string,uint,uint,uint)\""
																	},
																	"value": "log(string,uint,uint,uint)"
																},
																{
																	"id": 6216,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6203,
																	"src": "28321:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6217,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6205,
																	"src": "28325:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6218,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6207,
																	"src": "28329:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6219,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6209,
																	"src": "28333:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_08ee5666d6bd329d27af528e563bb238dedf631fe471effe31c7123dcb5164f2",
																		"typeString": "literal_string \"log(string,uint,uint,uint)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 6213,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "28267:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6214,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "28267:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6220,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "28267:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6212,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "28251:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6221,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "28251:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6222,
												"nodeType": "ExpressionStatement",
												"src": "28251:86:12"
											}
										]
									},
									"id": 6224,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "28184:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6210,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6203,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "28202:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6224,
												"src": "28188:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6202,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "28188:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6205,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "28211:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6224,
												"src": "28206:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6204,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "28206:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6207,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "28220:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6224,
												"src": "28215:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6206,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "28215:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6209,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "28229:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6224,
												"src": "28224:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6208,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "28224:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "28187:45:12"
									},
									"returnParameters": {
										"id": 6211,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "28247:0:12"
									},
									"scope": 10618,
									"src": "28175:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6246,
										"nodeType": "Block",
										"src": "28425:96:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c75696e742c75696e742c737472696e6729",
																	"id": 6238,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "28469:30:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_a54ed4bdd39588715cd10f1b9730ac9f0db064013c8dc11e216fa2ef3a5948b8",
																		"typeString": "literal_string \"log(string,uint,uint,string)\""
																	},
																	"value": "log(string,uint,uint,string)"
																},
																{
																	"id": 6239,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6226,
																	"src": "28501:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6240,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6228,
																	"src": "28505:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6241,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6230,
																	"src": "28509:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6242,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6232,
																	"src": "28513:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_a54ed4bdd39588715cd10f1b9730ac9f0db064013c8dc11e216fa2ef3a5948b8",
																		"typeString": "literal_string \"log(string,uint,uint,string)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 6236,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "28445:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6237,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "28445:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6243,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "28445:71:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6235,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "28429:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6244,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "28429:88:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6245,
												"nodeType": "ExpressionStatement",
												"src": "28429:88:12"
											}
										]
									},
									"id": 6247,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "28353:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6233,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6226,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "28371:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6247,
												"src": "28357:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6225,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "28357:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6228,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "28380:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6247,
												"src": "28375:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6227,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "28375:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6230,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "28389:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6247,
												"src": "28384:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6229,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "28384:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6232,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "28407:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6247,
												"src": "28393:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6231,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "28393:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "28356:54:12"
									},
									"returnParameters": {
										"id": 6234,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "28425:0:12"
									},
									"scope": 10618,
									"src": "28344:177:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6269,
										"nodeType": "Block",
										"src": "28596:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c75696e742c75696e742c626f6f6c29",
																	"id": 6261,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "28640:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_f73c7e3dc5b5cecd5787e08e359612e609c17649291b138c8f184ee441526f2d",
																		"typeString": "literal_string \"log(string,uint,uint,bool)\""
																	},
																	"value": "log(string,uint,uint,bool)"
																},
																{
																	"id": 6262,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6249,
																	"src": "28670:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6263,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6251,
																	"src": "28674:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6264,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6253,
																	"src": "28678:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6265,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6255,
																	"src": "28682:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_f73c7e3dc5b5cecd5787e08e359612e609c17649291b138c8f184ee441526f2d",
																		"typeString": "literal_string \"log(string,uint,uint,bool)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 6259,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "28616:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6260,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "28616:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6266,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "28616:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6258,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "28600:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6267,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "28600:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6268,
												"nodeType": "ExpressionStatement",
												"src": "28600:86:12"
											}
										]
									},
									"id": 6270,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "28533:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6256,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6249,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "28551:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6270,
												"src": "28537:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6248,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "28537:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6251,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "28560:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6270,
												"src": "28555:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6250,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "28555:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6253,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "28569:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6270,
												"src": "28564:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6252,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "28564:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6255,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "28578:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6270,
												"src": "28573:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 6254,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "28573:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "28536:45:12"
									},
									"returnParameters": {
										"id": 6257,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "28596:0:12"
									},
									"scope": 10618,
									"src": "28524:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6292,
										"nodeType": "Block",
										"src": "28768:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c75696e742c75696e742c6164647265737329",
																	"id": 6284,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "28812:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_bed728bf5bf9afc41a2cff142cfc289808bbba64cbab683d8e6689e6f6f14abc",
																		"typeString": "literal_string \"log(string,uint,uint,address)\""
																	},
																	"value": "log(string,uint,uint,address)"
																},
																{
																	"id": 6285,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6272,
																	"src": "28845:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6286,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6274,
																	"src": "28849:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6287,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6276,
																	"src": "28853:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6288,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6278,
																	"src": "28857:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_bed728bf5bf9afc41a2cff142cfc289808bbba64cbab683d8e6689e6f6f14abc",
																		"typeString": "literal_string \"log(string,uint,uint,address)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 6282,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "28788:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6283,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "28788:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6289,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "28788:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6281,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "28772:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6290,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "28772:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6291,
												"nodeType": "ExpressionStatement",
												"src": "28772:89:12"
											}
										]
									},
									"id": 6293,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "28702:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6279,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6272,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "28720:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6293,
												"src": "28706:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6271,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "28706:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6274,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "28729:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6293,
												"src": "28724:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6273,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "28724:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6276,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "28738:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6293,
												"src": "28733:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6275,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "28733:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6278,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "28750:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6293,
												"src": "28742:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6277,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "28742:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "28705:48:12"
									},
									"returnParameters": {
										"id": 6280,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "28768:0:12"
									},
									"scope": 10618,
									"src": "28693:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6315,
										"nodeType": "Block",
										"src": "28949:96:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c75696e742c737472696e672c75696e7429",
																	"id": 6307,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "28993:30:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_a0c4b225a555b1198e8b1e32117070e759cad9a7266d99901b8a7fd2482d0e2f",
																		"typeString": "literal_string \"log(string,uint,string,uint)\""
																	},
																	"value": "log(string,uint,string,uint)"
																},
																{
																	"id": 6308,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6295,
																	"src": "29025:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6309,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6297,
																	"src": "29029:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6310,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6299,
																	"src": "29033:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6311,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6301,
																	"src": "29037:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_a0c4b225a555b1198e8b1e32117070e759cad9a7266d99901b8a7fd2482d0e2f",
																		"typeString": "literal_string \"log(string,uint,string,uint)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 6305,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "28969:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6306,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "28969:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6312,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "28969:71:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6304,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "28953:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6313,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "28953:88:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6314,
												"nodeType": "ExpressionStatement",
												"src": "28953:88:12"
											}
										]
									},
									"id": 6316,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "28877:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6302,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6295,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "28895:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6316,
												"src": "28881:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6294,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "28881:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6297,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "28904:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6316,
												"src": "28899:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6296,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "28899:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6299,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "28922:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6316,
												"src": "28908:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6298,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "28908:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6301,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "28931:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6316,
												"src": "28926:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6300,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "28926:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "28880:54:12"
									},
									"returnParameters": {
										"id": 6303,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "28949:0:12"
									},
									"scope": 10618,
									"src": "28868:177:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6338,
										"nodeType": "Block",
										"src": "29138:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c75696e742c737472696e672c737472696e6729",
																	"id": 6330,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "29182:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_6c98dae27db048edb14bb31b4326832aa1fb54be52caaf49d1cecb59aa297c07",
																		"typeString": "literal_string \"log(string,uint,string,string)\""
																	},
																	"value": "log(string,uint,string,string)"
																},
																{
																	"id": 6331,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6318,
																	"src": "29216:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6332,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6320,
																	"src": "29220:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6333,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6322,
																	"src": "29224:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6334,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6324,
																	"src": "29228:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_6c98dae27db048edb14bb31b4326832aa1fb54be52caaf49d1cecb59aa297c07",
																		"typeString": "literal_string \"log(string,uint,string,string)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 6328,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "29158:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6329,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "29158:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6335,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "29158:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6327,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "29142:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6336,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "29142:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6337,
												"nodeType": "ExpressionStatement",
												"src": "29142:90:12"
											}
										]
									},
									"id": 6339,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "29057:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6325,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6318,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "29075:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6339,
												"src": "29061:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6317,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "29061:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6320,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "29084:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6339,
												"src": "29079:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6319,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "29079:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6322,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "29102:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6339,
												"src": "29088:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6321,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "29088:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6324,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "29120:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6339,
												"src": "29106:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6323,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "29106:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "29060:63:12"
									},
									"returnParameters": {
										"id": 6326,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "29138:0:12"
									},
									"scope": 10618,
									"src": "29048:188:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6361,
										"nodeType": "Block",
										"src": "29320:96:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c75696e742c737472696e672c626f6f6c29",
																	"id": 6353,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "29364:30:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_e99f82cf29cb9d7551a843a55617f00569395570d3a9816be530f7c6197ec7c8",
																		"typeString": "literal_string \"log(string,uint,string,bool)\""
																	},
																	"value": "log(string,uint,string,bool)"
																},
																{
																	"id": 6354,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6341,
																	"src": "29396:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6355,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6343,
																	"src": "29400:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6356,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6345,
																	"src": "29404:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6357,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6347,
																	"src": "29408:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_e99f82cf29cb9d7551a843a55617f00569395570d3a9816be530f7c6197ec7c8",
																		"typeString": "literal_string \"log(string,uint,string,bool)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 6351,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "29340:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6352,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "29340:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6358,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "29340:71:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6350,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "29324:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6359,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "29324:88:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6360,
												"nodeType": "ExpressionStatement",
												"src": "29324:88:12"
											}
										]
									},
									"id": 6362,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "29248:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6348,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6341,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "29266:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6362,
												"src": "29252:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6340,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "29252:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6343,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "29275:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6362,
												"src": "29270:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6342,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "29270:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6345,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "29293:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6362,
												"src": "29279:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6344,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "29279:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6347,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "29302:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6362,
												"src": "29297:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 6346,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "29297:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "29251:54:12"
									},
									"returnParameters": {
										"id": 6349,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "29320:0:12"
									},
									"scope": 10618,
									"src": "29239:177:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6384,
										"nodeType": "Block",
										"src": "29503:99:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c75696e742c737472696e672c6164647265737329",
																	"id": 6376,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "29547:33:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_bb7235e9977380af5de9932c5c28e18d22806b4b0a15ac7e98086e795e59b31c",
																		"typeString": "literal_string \"log(string,uint,string,address)\""
																	},
																	"value": "log(string,uint,string,address)"
																},
																{
																	"id": 6377,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6364,
																	"src": "29582:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6378,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6366,
																	"src": "29586:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6379,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6368,
																	"src": "29590:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6380,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6370,
																	"src": "29594:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_bb7235e9977380af5de9932c5c28e18d22806b4b0a15ac7e98086e795e59b31c",
																		"typeString": "literal_string \"log(string,uint,string,address)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 6374,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "29523:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6375,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "29523:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6381,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "29523:74:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6373,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "29507:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6382,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "29507:91:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6383,
												"nodeType": "ExpressionStatement",
												"src": "29507:91:12"
											}
										]
									},
									"id": 6385,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "29428:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6371,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6364,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "29446:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6385,
												"src": "29432:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6363,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "29432:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6366,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "29455:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6385,
												"src": "29450:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6365,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "29450:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6368,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "29473:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6385,
												"src": "29459:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6367,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "29459:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6370,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "29485:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6385,
												"src": "29477:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6369,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "29477:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "29431:57:12"
									},
									"returnParameters": {
										"id": 6372,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "29503:0:12"
									},
									"scope": 10618,
									"src": "29419:183:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6407,
										"nodeType": "Block",
										"src": "29677:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c75696e742c626f6f6c2c75696e7429",
																	"id": 6399,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "29721:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_550e6ef516f1b3b5be9432b068022af744a919b7f9554b6605ddb59dad27875f",
																		"typeString": "literal_string \"log(string,uint,bool,uint)\""
																	},
																	"value": "log(string,uint,bool,uint)"
																},
																{
																	"id": 6400,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6387,
																	"src": "29751:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6401,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6389,
																	"src": "29755:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6402,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6391,
																	"src": "29759:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 6403,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6393,
																	"src": "29763:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_550e6ef516f1b3b5be9432b068022af744a919b7f9554b6605ddb59dad27875f",
																		"typeString": "literal_string \"log(string,uint,bool,uint)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 6397,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "29697:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6398,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "29697:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6404,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "29697:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6396,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "29681:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6405,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "29681:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6406,
												"nodeType": "ExpressionStatement",
												"src": "29681:86:12"
											}
										]
									},
									"id": 6408,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "29614:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6394,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6387,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "29632:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6408,
												"src": "29618:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6386,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "29618:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6389,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "29641:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6408,
												"src": "29636:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6388,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "29636:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6391,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "29650:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6408,
												"src": "29645:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 6390,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "29645:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6393,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "29659:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6408,
												"src": "29654:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6392,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "29654:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "29617:45:12"
									},
									"returnParameters": {
										"id": 6395,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "29677:0:12"
									},
									"scope": 10618,
									"src": "29605:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6430,
										"nodeType": "Block",
										"src": "29855:96:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c75696e742c626f6f6c2c737472696e6729",
																	"id": 6422,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "29899:30:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_76cc6064a225b36730abdd64aa9dcb74a19c97e79a6eaa7e7a7381b59d8b3f68",
																		"typeString": "literal_string \"log(string,uint,bool,string)\""
																	},
																	"value": "log(string,uint,bool,string)"
																},
																{
																	"id": 6423,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6410,
																	"src": "29931:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6424,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6412,
																	"src": "29935:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6425,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6414,
																	"src": "29939:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 6426,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6416,
																	"src": "29943:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_76cc6064a225b36730abdd64aa9dcb74a19c97e79a6eaa7e7a7381b59d8b3f68",
																		"typeString": "literal_string \"log(string,uint,bool,string)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 6420,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "29875:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6421,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "29875:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6427,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "29875:71:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6419,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "29859:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6428,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "29859:88:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6429,
												"nodeType": "ExpressionStatement",
												"src": "29859:88:12"
											}
										]
									},
									"id": 6431,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "29783:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6417,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6410,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "29801:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6431,
												"src": "29787:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6409,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "29787:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6412,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "29810:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6431,
												"src": "29805:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6411,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "29805:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6414,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "29819:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6431,
												"src": "29814:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 6413,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "29814:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6416,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "29837:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6431,
												"src": "29823:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6415,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "29823:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "29786:54:12"
									},
									"returnParameters": {
										"id": 6418,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "29855:0:12"
									},
									"scope": 10618,
									"src": "29774:177:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6453,
										"nodeType": "Block",
										"src": "30026:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c75696e742c626f6f6c2c626f6f6c29",
																	"id": 6445,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "30070:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_e37ff3d07873d5117abd74fe9be70fdadf355b74510a6f7507b0edd4a0032d7f",
																		"typeString": "literal_string \"log(string,uint,bool,bool)\""
																	},
																	"value": "log(string,uint,bool,bool)"
																},
																{
																	"id": 6446,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6433,
																	"src": "30100:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6447,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6435,
																	"src": "30104:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6448,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6437,
																	"src": "30108:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 6449,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6439,
																	"src": "30112:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_e37ff3d07873d5117abd74fe9be70fdadf355b74510a6f7507b0edd4a0032d7f",
																		"typeString": "literal_string \"log(string,uint,bool,bool)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 6443,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "30046:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6444,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "30046:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6450,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "30046:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6442,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "30030:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6451,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "30030:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6452,
												"nodeType": "ExpressionStatement",
												"src": "30030:86:12"
											}
										]
									},
									"id": 6454,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "29963:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6440,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6433,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "29981:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6454,
												"src": "29967:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6432,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "29967:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6435,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "29990:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6454,
												"src": "29985:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6434,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "29985:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6437,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "29999:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6454,
												"src": "29994:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 6436,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "29994:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6439,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "30008:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6454,
												"src": "30003:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 6438,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "30003:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "29966:45:12"
									},
									"returnParameters": {
										"id": 6441,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "30026:0:12"
									},
									"scope": 10618,
									"src": "29954:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6476,
										"nodeType": "Block",
										"src": "30198:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c75696e742c626f6f6c2c6164647265737329",
																	"id": 6468,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "30242:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_e5549d91ec2998207f70463fe94a71d0edc39b13b219ff8feb87dd990a616539",
																		"typeString": "literal_string \"log(string,uint,bool,address)\""
																	},
																	"value": "log(string,uint,bool,address)"
																},
																{
																	"id": 6469,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6456,
																	"src": "30275:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6470,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6458,
																	"src": "30279:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6471,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6460,
																	"src": "30283:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 6472,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6462,
																	"src": "30287:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_e5549d91ec2998207f70463fe94a71d0edc39b13b219ff8feb87dd990a616539",
																		"typeString": "literal_string \"log(string,uint,bool,address)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 6466,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "30218:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6467,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "30218:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6473,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "30218:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6465,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "30202:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6474,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "30202:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6475,
												"nodeType": "ExpressionStatement",
												"src": "30202:89:12"
											}
										]
									},
									"id": 6477,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "30132:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6463,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6456,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "30150:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6477,
												"src": "30136:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6455,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "30136:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6458,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "30159:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6477,
												"src": "30154:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6457,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "30154:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6460,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "30168:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6477,
												"src": "30163:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 6459,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "30163:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6462,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "30180:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6477,
												"src": "30172:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6461,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "30172:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "30135:48:12"
									},
									"returnParameters": {
										"id": 6464,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "30198:0:12"
									},
									"scope": 10618,
									"src": "30123:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6499,
										"nodeType": "Block",
										"src": "30373:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c75696e742c616464726573732c75696e7429",
																	"id": 6491,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "30417:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_58497afe9e509136f5cf2fb1db9876437d9cbd769be5985b518ff094427e4f75",
																		"typeString": "literal_string \"log(string,uint,address,uint)\""
																	},
																	"value": "log(string,uint,address,uint)"
																},
																{
																	"id": 6492,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6479,
																	"src": "30450:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6493,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6481,
																	"src": "30454:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6494,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6483,
																	"src": "30458:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 6495,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6485,
																	"src": "30462:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_58497afe9e509136f5cf2fb1db9876437d9cbd769be5985b518ff094427e4f75",
																		"typeString": "literal_string \"log(string,uint,address,uint)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 6489,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "30393:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6490,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "30393:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6496,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "30393:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6488,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "30377:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6497,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "30377:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6498,
												"nodeType": "ExpressionStatement",
												"src": "30377:89:12"
											}
										]
									},
									"id": 6500,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "30307:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6486,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6479,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "30325:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6500,
												"src": "30311:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6478,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "30311:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6481,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "30334:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6500,
												"src": "30329:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6480,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "30329:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6483,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "30346:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6500,
												"src": "30338:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6482,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "30338:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6485,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "30355:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6500,
												"src": "30350:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6484,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "30350:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "30310:48:12"
									},
									"returnParameters": {
										"id": 6487,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "30373:0:12"
									},
									"scope": 10618,
									"src": "30298:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6522,
										"nodeType": "Block",
										"src": "30557:99:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c75696e742c616464726573732c737472696e6729",
																	"id": 6514,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "30601:33:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_3254c2e85e824e7dd0b3e2e602f95218ed23a331406e197386693086d91053c0",
																		"typeString": "literal_string \"log(string,uint,address,string)\""
																	},
																	"value": "log(string,uint,address,string)"
																},
																{
																	"id": 6515,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6502,
																	"src": "30636:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6516,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6504,
																	"src": "30640:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6517,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6506,
																	"src": "30644:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 6518,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6508,
																	"src": "30648:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_3254c2e85e824e7dd0b3e2e602f95218ed23a331406e197386693086d91053c0",
																		"typeString": "literal_string \"log(string,uint,address,string)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 6512,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "30577:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6513,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "30577:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6519,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "30577:74:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6511,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "30561:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6520,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "30561:91:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6521,
												"nodeType": "ExpressionStatement",
												"src": "30561:91:12"
											}
										]
									},
									"id": 6523,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "30482:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6509,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6502,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "30500:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6523,
												"src": "30486:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6501,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "30486:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6504,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "30509:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6523,
												"src": "30504:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6503,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "30504:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6506,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "30521:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6523,
												"src": "30513:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6505,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "30513:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6508,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "30539:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6523,
												"src": "30525:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6507,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "30525:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "30485:57:12"
									},
									"returnParameters": {
										"id": 6510,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "30557:0:12"
									},
									"scope": 10618,
									"src": "30473:183:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6545,
										"nodeType": "Block",
										"src": "30734:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c75696e742c616464726573732c626f6f6c29",
																	"id": 6537,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "30778:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_1106a8f7a9fdb0743cc8f33bcf28da92f358b488bfc5eb2426dcc116571bae10",
																		"typeString": "literal_string \"log(string,uint,address,bool)\""
																	},
																	"value": "log(string,uint,address,bool)"
																},
																{
																	"id": 6538,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6525,
																	"src": "30811:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6539,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6527,
																	"src": "30815:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6540,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6529,
																	"src": "30819:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 6541,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6531,
																	"src": "30823:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_1106a8f7a9fdb0743cc8f33bcf28da92f358b488bfc5eb2426dcc116571bae10",
																		"typeString": "literal_string \"log(string,uint,address,bool)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 6535,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "30754:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6536,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "30754:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6542,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "30754:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6534,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "30738:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6543,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "30738:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6544,
												"nodeType": "ExpressionStatement",
												"src": "30738:89:12"
											}
										]
									},
									"id": 6546,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "30668:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6532,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6525,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "30686:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6546,
												"src": "30672:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6524,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "30672:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6527,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "30695:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6546,
												"src": "30690:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6526,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "30690:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6529,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "30707:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6546,
												"src": "30699:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6528,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "30699:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6531,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "30716:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6546,
												"src": "30711:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 6530,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "30711:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "30671:48:12"
									},
									"returnParameters": {
										"id": 6533,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "30734:0:12"
									},
									"scope": 10618,
									"src": "30659:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6568,
										"nodeType": "Block",
										"src": "30912:100:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c75696e742c616464726573732c6164647265737329",
																	"id": 6560,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "30956:34:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_eac892812ad5b43e056a005de5f4269f3430ecb19d3374f0e27d055022fbb381",
																		"typeString": "literal_string \"log(string,uint,address,address)\""
																	},
																	"value": "log(string,uint,address,address)"
																},
																{
																	"id": 6561,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6548,
																	"src": "30992:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6562,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6550,
																	"src": "30996:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6563,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6552,
																	"src": "31000:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 6564,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6554,
																	"src": "31004:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_eac892812ad5b43e056a005de5f4269f3430ecb19d3374f0e27d055022fbb381",
																		"typeString": "literal_string \"log(string,uint,address,address)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 6558,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "30932:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6559,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "30932:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6565,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "30932:75:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6557,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "30916:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6566,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "30916:92:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6567,
												"nodeType": "ExpressionStatement",
												"src": "30916:92:12"
											}
										]
									},
									"id": 6569,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "30843:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6555,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6548,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "30861:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6569,
												"src": "30847:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6547,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "30847:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6550,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "30870:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6569,
												"src": "30865:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6549,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "30865:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6552,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "30882:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6569,
												"src": "30874:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6551,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "30874:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6554,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "30894:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6569,
												"src": "30886:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6553,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "30886:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "30846:51:12"
									},
									"returnParameters": {
										"id": 6556,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "30912:0:12"
									},
									"scope": 10618,
									"src": "30834:178:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6591,
										"nodeType": "Block",
										"src": "31096:96:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c737472696e672c75696e742c75696e7429",
																	"id": 6583,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "31140:30:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_d5cf17d093c9068e0703e037cea1f6c3048599508dc7985106a94aa34c08c926",
																		"typeString": "literal_string \"log(string,string,uint,uint)\""
																	},
																	"value": "log(string,string,uint,uint)"
																},
																{
																	"id": 6584,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6571,
																	"src": "31172:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6585,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6573,
																	"src": "31176:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6586,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6575,
																	"src": "31180:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6587,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6577,
																	"src": "31184:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_d5cf17d093c9068e0703e037cea1f6c3048599508dc7985106a94aa34c08c926",
																		"typeString": "literal_string \"log(string,string,uint,uint)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 6581,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "31116:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6582,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "31116:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6588,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "31116:71:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6580,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "31100:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6589,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "31100:88:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6590,
												"nodeType": "ExpressionStatement",
												"src": "31100:88:12"
											}
										]
									},
									"id": 6592,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "31024:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6578,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6571,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "31042:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6592,
												"src": "31028:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6570,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "31028:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6573,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "31060:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6592,
												"src": "31046:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6572,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "31046:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6575,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "31069:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6592,
												"src": "31064:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6574,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "31064:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6577,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "31078:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6592,
												"src": "31073:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6576,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "31073:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "31027:54:12"
									},
									"returnParameters": {
										"id": 6579,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "31096:0:12"
									},
									"scope": 10618,
									"src": "31015:177:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6614,
										"nodeType": "Block",
										"src": "31285:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c737472696e672c75696e742c737472696e6729",
																	"id": 6606,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "31329:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_8d142cdddf40ab944834474e14a37534e67dcf2f6ffd68fd3d894f907fb76a0a",
																		"typeString": "literal_string \"log(string,string,uint,string)\""
																	},
																	"value": "log(string,string,uint,string)"
																},
																{
																	"id": 6607,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6594,
																	"src": "31363:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6608,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6596,
																	"src": "31367:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6609,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6598,
																	"src": "31371:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6610,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6600,
																	"src": "31375:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_8d142cdddf40ab944834474e14a37534e67dcf2f6ffd68fd3d894f907fb76a0a",
																		"typeString": "literal_string \"log(string,string,uint,string)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 6604,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "31305:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6605,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "31305:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6611,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "31305:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6603,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "31289:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6612,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "31289:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6613,
												"nodeType": "ExpressionStatement",
												"src": "31289:90:12"
											}
										]
									},
									"id": 6615,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "31204:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6601,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6594,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "31222:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6615,
												"src": "31208:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6593,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "31208:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6596,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "31240:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6615,
												"src": "31226:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6595,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "31226:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6598,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "31249:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6615,
												"src": "31244:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6597,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "31244:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6600,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "31267:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6615,
												"src": "31253:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6599,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "31253:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "31207:63:12"
									},
									"returnParameters": {
										"id": 6602,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "31285:0:12"
									},
									"scope": 10618,
									"src": "31195:188:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6637,
										"nodeType": "Block",
										"src": "31467:96:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c737472696e672c75696e742c626f6f6c29",
																	"id": 6629,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "31511:30:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_e65658ca6578795ac405c3487ab68ec21d76f9a79d734a9ab869db5d96b4556b",
																		"typeString": "literal_string \"log(string,string,uint,bool)\""
																	},
																	"value": "log(string,string,uint,bool)"
																},
																{
																	"id": 6630,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6617,
																	"src": "31543:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6631,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6619,
																	"src": "31547:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6632,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6621,
																	"src": "31551:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6633,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6623,
																	"src": "31555:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_e65658ca6578795ac405c3487ab68ec21d76f9a79d734a9ab869db5d96b4556b",
																		"typeString": "literal_string \"log(string,string,uint,bool)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 6627,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "31487:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6628,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "31487:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6634,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "31487:71:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6626,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "31471:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6635,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "31471:88:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6636,
												"nodeType": "ExpressionStatement",
												"src": "31471:88:12"
											}
										]
									},
									"id": 6638,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "31395:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6624,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6617,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "31413:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6638,
												"src": "31399:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6616,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "31399:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6619,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "31431:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6638,
												"src": "31417:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6618,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "31417:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6621,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "31440:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6638,
												"src": "31435:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6620,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "31435:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6623,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "31449:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6638,
												"src": "31444:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 6622,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "31444:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "31398:54:12"
									},
									"returnParameters": {
										"id": 6625,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "31467:0:12"
									},
									"scope": 10618,
									"src": "31386:177:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6660,
										"nodeType": "Block",
										"src": "31650:99:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c737472696e672c75696e742c6164647265737329",
																	"id": 6652,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "31694:33:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_5d4f46805293f3e84ba6dbfe353f76b3d1f1cfb2ff1e8024fb2adb45e2b7a128",
																		"typeString": "literal_string \"log(string,string,uint,address)\""
																	},
																	"value": "log(string,string,uint,address)"
																},
																{
																	"id": 6653,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6640,
																	"src": "31729:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6654,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6642,
																	"src": "31733:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6655,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6644,
																	"src": "31737:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6656,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6646,
																	"src": "31741:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_5d4f46805293f3e84ba6dbfe353f76b3d1f1cfb2ff1e8024fb2adb45e2b7a128",
																		"typeString": "literal_string \"log(string,string,uint,address)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 6650,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "31670:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6651,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "31670:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6657,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "31670:74:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6649,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "31654:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6658,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "31654:91:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6659,
												"nodeType": "ExpressionStatement",
												"src": "31654:91:12"
											}
										]
									},
									"id": 6661,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "31575:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6647,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6640,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "31593:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6661,
												"src": "31579:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6639,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "31579:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6642,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "31611:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6661,
												"src": "31597:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6641,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "31597:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6644,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "31620:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6661,
												"src": "31615:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6643,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "31615:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6646,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "31632:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6661,
												"src": "31624:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6645,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "31624:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "31578:57:12"
									},
									"returnParameters": {
										"id": 6648,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "31650:0:12"
									},
									"scope": 10618,
									"src": "31566:183:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6683,
										"nodeType": "Block",
										"src": "31842:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c737472696e672c737472696e672c75696e7429",
																	"id": 6675,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "31886:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_9fd009f5f31a16d665d9be327a4a2b17dc428108ae31e46ab875e747b5ee155f",
																		"typeString": "literal_string \"log(string,string,string,uint)\""
																	},
																	"value": "log(string,string,string,uint)"
																},
																{
																	"id": 6676,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6663,
																	"src": "31920:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6677,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6665,
																	"src": "31924:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6678,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6667,
																	"src": "31928:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6679,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6669,
																	"src": "31932:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_9fd009f5f31a16d665d9be327a4a2b17dc428108ae31e46ab875e747b5ee155f",
																		"typeString": "literal_string \"log(string,string,string,uint)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 6673,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "31862:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6674,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "31862:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6680,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "31862:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6672,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "31846:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6681,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "31846:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6682,
												"nodeType": "ExpressionStatement",
												"src": "31846:90:12"
											}
										]
									},
									"id": 6684,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "31761:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6670,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6663,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "31779:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6684,
												"src": "31765:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6662,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "31765:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6665,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "31797:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6684,
												"src": "31783:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6664,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "31783:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6667,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "31815:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6684,
												"src": "31801:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6666,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "31801:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6669,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "31824:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6684,
												"src": "31819:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6668,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "31819:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "31764:63:12"
									},
									"returnParameters": {
										"id": 6671,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "31842:0:12"
									},
									"scope": 10618,
									"src": "31752:188:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6706,
										"nodeType": "Block",
										"src": "32042:100:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c737472696e672c737472696e672c737472696e6729",
																	"id": 6698,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "32086:34:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_de68f20a8e88f68d54c5aa294860ee37b58680632686e2f1101e4e042a2cbcbe",
																		"typeString": "literal_string \"log(string,string,string,string)\""
																	},
																	"value": "log(string,string,string,string)"
																},
																{
																	"id": 6699,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6686,
																	"src": "32122:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6700,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6688,
																	"src": "32126:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6701,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6690,
																	"src": "32130:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6702,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6692,
																	"src": "32134:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_de68f20a8e88f68d54c5aa294860ee37b58680632686e2f1101e4e042a2cbcbe",
																		"typeString": "literal_string \"log(string,string,string,string)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 6696,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "32062:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6697,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "32062:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6703,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "32062:75:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6695,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "32046:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6704,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "32046:92:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6705,
												"nodeType": "ExpressionStatement",
												"src": "32046:92:12"
											}
										]
									},
									"id": 6707,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "31952:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6693,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6686,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "31970:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6707,
												"src": "31956:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6685,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "31956:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6688,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "31988:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6707,
												"src": "31974:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6687,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "31974:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6690,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "32006:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6707,
												"src": "31992:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6689,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "31992:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6692,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "32024:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6707,
												"src": "32010:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6691,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "32010:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "31955:72:12"
									},
									"returnParameters": {
										"id": 6694,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "32042:0:12"
									},
									"scope": 10618,
									"src": "31943:199:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6729,
										"nodeType": "Block",
										"src": "32235:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c737472696e672c737472696e672c626f6f6c29",
																	"id": 6721,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "32279:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_2c1754ed9d3bc50669c3e71e3115dc4403f3cff35aa9b6b58799f80b5496f332",
																		"typeString": "literal_string \"log(string,string,string,bool)\""
																	},
																	"value": "log(string,string,string,bool)"
																},
																{
																	"id": 6722,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6709,
																	"src": "32313:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6723,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6711,
																	"src": "32317:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6724,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6713,
																	"src": "32321:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6725,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6715,
																	"src": "32325:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_2c1754ed9d3bc50669c3e71e3115dc4403f3cff35aa9b6b58799f80b5496f332",
																		"typeString": "literal_string \"log(string,string,string,bool)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 6719,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "32255:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6720,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "32255:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6726,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "32255:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6718,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "32239:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6727,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "32239:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6728,
												"nodeType": "ExpressionStatement",
												"src": "32239:90:12"
											}
										]
									},
									"id": 6730,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "32154:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6716,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6709,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "32172:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6730,
												"src": "32158:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6708,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "32158:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6711,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "32190:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6730,
												"src": "32176:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6710,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "32176:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6713,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "32208:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6730,
												"src": "32194:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6712,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "32194:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6715,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "32217:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6730,
												"src": "32212:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 6714,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "32212:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "32157:63:12"
									},
									"returnParameters": {
										"id": 6717,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "32235:0:12"
									},
									"scope": 10618,
									"src": "32145:188:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6752,
										"nodeType": "Block",
										"src": "32429:101:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c737472696e672c737472696e672c6164647265737329",
																	"id": 6744,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "32473:35:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_6d572f449cf1e446ea3ace51a34ce30628f4f1588a39dc5d550cefb210c5bb16",
																		"typeString": "literal_string \"log(string,string,string,address)\""
																	},
																	"value": "log(string,string,string,address)"
																},
																{
																	"id": 6745,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6732,
																	"src": "32510:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6746,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6734,
																	"src": "32514:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6747,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6736,
																	"src": "32518:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6748,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6738,
																	"src": "32522:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_6d572f449cf1e446ea3ace51a34ce30628f4f1588a39dc5d550cefb210c5bb16",
																		"typeString": "literal_string \"log(string,string,string,address)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 6742,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "32449:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6743,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "32449:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6749,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "32449:76:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6741,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "32433:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6750,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "32433:93:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6751,
												"nodeType": "ExpressionStatement",
												"src": "32433:93:12"
											}
										]
									},
									"id": 6753,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "32345:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6739,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6732,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "32363:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6753,
												"src": "32349:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6731,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "32349:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6734,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "32381:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6753,
												"src": "32367:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6733,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "32367:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6736,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "32399:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6753,
												"src": "32385:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6735,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "32385:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6738,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "32411:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6753,
												"src": "32403:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6737,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "32403:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "32348:66:12"
									},
									"returnParameters": {
										"id": 6740,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "32429:0:12"
									},
									"scope": 10618,
									"src": "32336:194:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6775,
										"nodeType": "Block",
										"src": "32614:96:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c737472696e672c626f6f6c2c75696e7429",
																	"id": 6767,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "32658:30:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_86818a7aa9bc994aa800ce554e865f0047fd8aaa8799a458e8fea2db0986c5c1",
																		"typeString": "literal_string \"log(string,string,bool,uint)\""
																	},
																	"value": "log(string,string,bool,uint)"
																},
																{
																	"id": 6768,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6755,
																	"src": "32690:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6769,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6757,
																	"src": "32694:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6770,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6759,
																	"src": "32698:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 6771,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6761,
																	"src": "32702:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_86818a7aa9bc994aa800ce554e865f0047fd8aaa8799a458e8fea2db0986c5c1",
																		"typeString": "literal_string \"log(string,string,bool,uint)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 6765,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "32634:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6766,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "32634:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6772,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "32634:71:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6764,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "32618:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6773,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "32618:88:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6774,
												"nodeType": "ExpressionStatement",
												"src": "32618:88:12"
											}
										]
									},
									"id": 6776,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "32542:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6762,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6755,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "32560:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6776,
												"src": "32546:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6754,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "32546:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6757,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "32578:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6776,
												"src": "32564:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6756,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "32564:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6759,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "32587:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6776,
												"src": "32582:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 6758,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "32582:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6761,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "32596:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6776,
												"src": "32591:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6760,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "32591:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "32545:54:12"
									},
									"returnParameters": {
										"id": 6763,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "32614:0:12"
									},
									"scope": 10618,
									"src": "32533:177:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6798,
										"nodeType": "Block",
										"src": "32803:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c737472696e672c626f6f6c2c737472696e6729",
																	"id": 6790,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "32847:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_5e84b0ea51a130c3c7e1443097f28cb5c541ea8487836ae7cb1ca9c6e683699b",
																		"typeString": "literal_string \"log(string,string,bool,string)\""
																	},
																	"value": "log(string,string,bool,string)"
																},
																{
																	"id": 6791,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6778,
																	"src": "32881:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6792,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6780,
																	"src": "32885:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6793,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6782,
																	"src": "32889:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 6794,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6784,
																	"src": "32893:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_5e84b0ea51a130c3c7e1443097f28cb5c541ea8487836ae7cb1ca9c6e683699b",
																		"typeString": "literal_string \"log(string,string,bool,string)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 6788,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "32823:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6789,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "32823:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6795,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "32823:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6787,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "32807:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6796,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "32807:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6797,
												"nodeType": "ExpressionStatement",
												"src": "32807:90:12"
											}
										]
									},
									"id": 6799,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "32722:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6785,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6778,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "32740:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6799,
												"src": "32726:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6777,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "32726:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6780,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "32758:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6799,
												"src": "32744:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6779,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "32744:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6782,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "32767:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6799,
												"src": "32762:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 6781,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "32762:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6784,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "32785:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6799,
												"src": "32771:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6783,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "32771:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "32725:63:12"
									},
									"returnParameters": {
										"id": 6786,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "32803:0:12"
									},
									"scope": 10618,
									"src": "32713:188:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6821,
										"nodeType": "Block",
										"src": "32985:96:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c737472696e672c626f6f6c2c626f6f6c29",
																	"id": 6813,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "33029:30:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_40785869c0ea63ca2ccbcf7415552989c2f1ce04f151eb3b2bd695c64d21af10",
																		"typeString": "literal_string \"log(string,string,bool,bool)\""
																	},
																	"value": "log(string,string,bool,bool)"
																},
																{
																	"id": 6814,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6801,
																	"src": "33061:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6815,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6803,
																	"src": "33065:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6816,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6805,
																	"src": "33069:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 6817,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6807,
																	"src": "33073:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_40785869c0ea63ca2ccbcf7415552989c2f1ce04f151eb3b2bd695c64d21af10",
																		"typeString": "literal_string \"log(string,string,bool,bool)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 6811,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "33005:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6812,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "33005:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6818,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "33005:71:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6810,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "32989:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6819,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "32989:88:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6820,
												"nodeType": "ExpressionStatement",
												"src": "32989:88:12"
											}
										]
									},
									"id": 6822,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "32913:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6808,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6801,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "32931:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6822,
												"src": "32917:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6800,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "32917:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6803,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "32949:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6822,
												"src": "32935:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6802,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "32935:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6805,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "32958:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6822,
												"src": "32953:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 6804,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "32953:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6807,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "32967:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6822,
												"src": "32962:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 6806,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "32962:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "32916:54:12"
									},
									"returnParameters": {
										"id": 6809,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "32985:0:12"
									},
									"scope": 10618,
									"src": "32904:177:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6844,
										"nodeType": "Block",
										"src": "33168:99:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c737472696e672c626f6f6c2c6164647265737329",
																	"id": 6836,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "33212:33:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_c371c7db0a4b104babdbdf00d079eb75cb5aa1d401c4fb726c8e5559029df84d",
																		"typeString": "literal_string \"log(string,string,bool,address)\""
																	},
																	"value": "log(string,string,bool,address)"
																},
																{
																	"id": 6837,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6824,
																	"src": "33247:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6838,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6826,
																	"src": "33251:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6839,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6828,
																	"src": "33255:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 6840,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6830,
																	"src": "33259:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_c371c7db0a4b104babdbdf00d079eb75cb5aa1d401c4fb726c8e5559029df84d",
																		"typeString": "literal_string \"log(string,string,bool,address)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 6834,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "33188:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6835,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "33188:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6841,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "33188:74:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6833,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "33172:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6842,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "33172:91:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6843,
												"nodeType": "ExpressionStatement",
												"src": "33172:91:12"
											}
										]
									},
									"id": 6845,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "33093:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6831,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6824,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "33111:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6845,
												"src": "33097:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6823,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "33097:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6826,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "33129:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6845,
												"src": "33115:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6825,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "33115:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6828,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "33138:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6845,
												"src": "33133:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 6827,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "33133:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6830,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "33150:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6845,
												"src": "33142:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6829,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "33142:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "33096:57:12"
									},
									"returnParameters": {
										"id": 6832,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "33168:0:12"
									},
									"scope": 10618,
									"src": "33084:183:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6867,
										"nodeType": "Block",
										"src": "33354:99:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c737472696e672c616464726573732c75696e7429",
																	"id": 6859,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "33398:33:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_4a81a56a33247069679e8b6a463a3b29deb4b1020ce6e03b978132074cad28c2",
																		"typeString": "literal_string \"log(string,string,address,uint)\""
																	},
																	"value": "log(string,string,address,uint)"
																},
																{
																	"id": 6860,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6847,
																	"src": "33433:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6861,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6849,
																	"src": "33437:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6862,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6851,
																	"src": "33441:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 6863,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6853,
																	"src": "33445:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_4a81a56a33247069679e8b6a463a3b29deb4b1020ce6e03b978132074cad28c2",
																		"typeString": "literal_string \"log(string,string,address,uint)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 6857,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "33374:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6858,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "33374:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6864,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "33374:74:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6856,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "33358:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6865,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "33358:91:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6866,
												"nodeType": "ExpressionStatement",
												"src": "33358:91:12"
											}
										]
									},
									"id": 6868,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "33279:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6854,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6847,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "33297:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6868,
												"src": "33283:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6846,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "33283:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6849,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "33315:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6868,
												"src": "33301:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6848,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "33301:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6851,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "33327:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6868,
												"src": "33319:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6850,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "33319:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6853,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "33336:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6868,
												"src": "33331:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6852,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "33331:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "33282:57:12"
									},
									"returnParameters": {
										"id": 6855,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "33354:0:12"
									},
									"scope": 10618,
									"src": "33270:183:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6890,
										"nodeType": "Block",
										"src": "33549:101:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c737472696e672c616464726573732c737472696e6729",
																	"id": 6882,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "33593:35:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_eb1bff805ef136c60bfed230c7b932a14c6f7a62608edeaf56f8f2c0575d25b6",
																		"typeString": "literal_string \"log(string,string,address,string)\""
																	},
																	"value": "log(string,string,address,string)"
																},
																{
																	"id": 6883,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6870,
																	"src": "33630:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6884,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6872,
																	"src": "33634:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6885,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6874,
																	"src": "33638:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 6886,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6876,
																	"src": "33642:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_eb1bff805ef136c60bfed230c7b932a14c6f7a62608edeaf56f8f2c0575d25b6",
																		"typeString": "literal_string \"log(string,string,address,string)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 6880,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "33569:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6881,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "33569:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6887,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "33569:76:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6879,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "33553:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6888,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "33553:93:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6889,
												"nodeType": "ExpressionStatement",
												"src": "33553:93:12"
											}
										]
									},
									"id": 6891,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "33465:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6877,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6870,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "33483:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6891,
												"src": "33469:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6869,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "33469:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6872,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "33501:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6891,
												"src": "33487:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6871,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "33487:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6874,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "33513:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6891,
												"src": "33505:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6873,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "33505:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6876,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "33531:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6891,
												"src": "33517:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6875,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "33517:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "33468:66:12"
									},
									"returnParameters": {
										"id": 6878,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "33549:0:12"
									},
									"scope": 10618,
									"src": "33456:194:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6913,
										"nodeType": "Block",
										"src": "33737:99:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c737472696e672c616464726573732c626f6f6c29",
																	"id": 6905,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "33781:33:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_5ccd4e373eb6ae26626c8607ae861c55cda5fd321363edde7e6328e09072ba63",
																		"typeString": "literal_string \"log(string,string,address,bool)\""
																	},
																	"value": "log(string,string,address,bool)"
																},
																{
																	"id": 6906,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6893,
																	"src": "33816:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6907,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6895,
																	"src": "33820:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6908,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6897,
																	"src": "33824:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 6909,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6899,
																	"src": "33828:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_5ccd4e373eb6ae26626c8607ae861c55cda5fd321363edde7e6328e09072ba63",
																		"typeString": "literal_string \"log(string,string,address,bool)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 6903,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "33757:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6904,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "33757:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6910,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "33757:74:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6902,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "33741:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6911,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "33741:91:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6912,
												"nodeType": "ExpressionStatement",
												"src": "33741:91:12"
											}
										]
									},
									"id": 6914,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "33662:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6900,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6893,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "33680:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6914,
												"src": "33666:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6892,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "33666:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6895,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "33698:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6914,
												"src": "33684:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6894,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "33684:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6897,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "33710:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6914,
												"src": "33702:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6896,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "33702:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6899,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "33719:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6914,
												"src": "33714:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 6898,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "33714:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "33665:57:12"
									},
									"returnParameters": {
										"id": 6901,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "33737:0:12"
									},
									"scope": 10618,
									"src": "33653:183:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6936,
										"nodeType": "Block",
										"src": "33926:102:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c737472696e672c616464726573732c6164647265737329",
																	"id": 6928,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "33970:36:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_439c7befd1b6bfcb9bd001c1f3a991ef43c070f0ace0c190dd9f16d7ae338a5d",
																		"typeString": "literal_string \"log(string,string,address,address)\""
																	},
																	"value": "log(string,string,address,address)"
																},
																{
																	"id": 6929,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6916,
																	"src": "34008:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6930,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6918,
																	"src": "34012:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6931,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6920,
																	"src": "34016:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 6932,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6922,
																	"src": "34020:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_439c7befd1b6bfcb9bd001c1f3a991ef43c070f0ace0c190dd9f16d7ae338a5d",
																		"typeString": "literal_string \"log(string,string,address,address)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 6926,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "33946:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6927,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "33946:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6933,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "33946:77:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6925,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "33930:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6934,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "33930:94:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6935,
												"nodeType": "ExpressionStatement",
												"src": "33930:94:12"
											}
										]
									},
									"id": 6937,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "33848:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6923,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6916,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "33866:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6937,
												"src": "33852:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6915,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "33852:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6918,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "33884:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6937,
												"src": "33870:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6917,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "33870:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6920,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "33896:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6937,
												"src": "33888:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6919,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "33888:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6922,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "33908:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6937,
												"src": "33900:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 6921,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "33900:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "33851:60:12"
									},
									"returnParameters": {
										"id": 6924,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "33926:0:12"
									},
									"scope": 10618,
									"src": "33839:189:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6959,
										"nodeType": "Block",
										"src": "34103:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c626f6f6c2c75696e742c75696e7429",
																	"id": 6951,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "34147:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_5dbff038873b5f716761e9dcaab0713a903ceaebb2ba8c30b199c4dc534f7701",
																		"typeString": "literal_string \"log(string,bool,uint,uint)\""
																	},
																	"value": "log(string,bool,uint,uint)"
																},
																{
																	"id": 6952,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6939,
																	"src": "34177:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6953,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6941,
																	"src": "34181:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 6954,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6943,
																	"src": "34185:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6955,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6945,
																	"src": "34189:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_5dbff038873b5f716761e9dcaab0713a903ceaebb2ba8c30b199c4dc534f7701",
																		"typeString": "literal_string \"log(string,bool,uint,uint)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 6949,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "34123:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6950,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "34123:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6956,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "34123:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6948,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "34107:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6957,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "34107:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6958,
												"nodeType": "ExpressionStatement",
												"src": "34107:86:12"
											}
										]
									},
									"id": 6960,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "34040:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6946,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6939,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "34058:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6960,
												"src": "34044:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6938,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "34044:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6941,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "34067:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6960,
												"src": "34062:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 6940,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "34062:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6943,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "34076:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6960,
												"src": "34071:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6942,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "34071:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6945,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "34085:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6960,
												"src": "34080:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6944,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "34080:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "34043:45:12"
									},
									"returnParameters": {
										"id": 6947,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "34103:0:12"
									},
									"scope": 10618,
									"src": "34031:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 6982,
										"nodeType": "Block",
										"src": "34281:96:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c626f6f6c2c75696e742c737472696e6729",
																	"id": 6974,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "34325:30:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_42b9a2274d0e9ab9211da679bc79f433c4055060036260a350e95cf10b9004ee",
																		"typeString": "literal_string \"log(string,bool,uint,string)\""
																	},
																	"value": "log(string,bool,uint,string)"
																},
																{
																	"id": 6975,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6962,
																	"src": "34357:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6976,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6964,
																	"src": "34361:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 6977,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6966,
																	"src": "34365:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 6978,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6968,
																	"src": "34369:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_42b9a2274d0e9ab9211da679bc79f433c4055060036260a350e95cf10b9004ee",
																		"typeString": "literal_string \"log(string,bool,uint,string)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 6972,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "34301:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6973,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "34301:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 6979,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "34301:71:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6971,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "34285:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 6980,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "34285:88:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 6981,
												"nodeType": "ExpressionStatement",
												"src": "34285:88:12"
											}
										]
									},
									"id": 6983,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "34209:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6969,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6962,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "34227:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6983,
												"src": "34213:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6961,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "34213:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6964,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "34236:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6983,
												"src": "34231:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 6963,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "34231:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6966,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "34245:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6983,
												"src": "34240:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6965,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "34240:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6968,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "34263:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 6983,
												"src": "34249:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6967,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "34249:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "34212:54:12"
									},
									"returnParameters": {
										"id": 6970,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "34281:0:12"
									},
									"scope": 10618,
									"src": "34200:177:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7005,
										"nodeType": "Block",
										"src": "34452:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c626f6f6c2c75696e742c626f6f6c29",
																	"id": 6997,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "34496:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_3cc5b5d38fa67d61ad4f760e2dab344ea54d36d39a7b72ff747c1e117e2289bb",
																		"typeString": "literal_string \"log(string,bool,uint,bool)\""
																	},
																	"value": "log(string,bool,uint,bool)"
																},
																{
																	"id": 6998,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6985,
																	"src": "34526:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 6999,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6987,
																	"src": "34530:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7000,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6989,
																	"src": "34534:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 7001,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 6991,
																	"src": "34538:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_3cc5b5d38fa67d61ad4f760e2dab344ea54d36d39a7b72ff747c1e117e2289bb",
																		"typeString": "literal_string \"log(string,bool,uint,bool)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 6995,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "34472:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 6996,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "34472:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7002,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "34472:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 6994,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "34456:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7003,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "34456:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7004,
												"nodeType": "ExpressionStatement",
												"src": "34456:86:12"
											}
										]
									},
									"id": 7006,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "34389:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 6992,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 6985,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "34407:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7006,
												"src": "34393:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 6984,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "34393:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6987,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "34416:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7006,
												"src": "34411:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 6986,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "34411:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6989,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "34425:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7006,
												"src": "34420:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 6988,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "34420:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 6991,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "34434:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7006,
												"src": "34429:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 6990,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "34429:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "34392:45:12"
									},
									"returnParameters": {
										"id": 6993,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "34452:0:12"
									},
									"scope": 10618,
									"src": "34380:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7028,
										"nodeType": "Block",
										"src": "34624:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c626f6f6c2c75696e742c6164647265737329",
																	"id": 7020,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "34668:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_71d3850da171f493bcf1bd9faa0694f71484214d8459bca427251a9ad3e9bbd6",
																		"typeString": "literal_string \"log(string,bool,uint,address)\""
																	},
																	"value": "log(string,bool,uint,address)"
																},
																{
																	"id": 7021,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7008,
																	"src": "34701:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7022,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7010,
																	"src": "34705:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7023,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7012,
																	"src": "34709:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 7024,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7014,
																	"src": "34713:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_71d3850da171f493bcf1bd9faa0694f71484214d8459bca427251a9ad3e9bbd6",
																		"typeString": "literal_string \"log(string,bool,uint,address)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 7018,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "34644:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7019,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "34644:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7025,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "34644:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7017,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "34628:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7026,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "34628:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7027,
												"nodeType": "ExpressionStatement",
												"src": "34628:89:12"
											}
										]
									},
									"id": 7029,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "34558:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7015,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7008,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "34576:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7029,
												"src": "34562:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7007,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "34562:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7010,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "34585:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7029,
												"src": "34580:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7009,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "34580:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7012,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "34594:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7029,
												"src": "34589:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7011,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "34589:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7014,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "34606:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7029,
												"src": "34598:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7013,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "34598:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "34561:48:12"
									},
									"returnParameters": {
										"id": 7016,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "34624:0:12"
									},
									"scope": 10618,
									"src": "34549:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7051,
										"nodeType": "Block",
										"src": "34805:96:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c626f6f6c2c737472696e672c75696e7429",
																	"id": 7043,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "34849:30:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_34cb308d42fc37e3a239bcd0d717cf3713a336733737bee1d82ac9061e969d72",
																		"typeString": "literal_string \"log(string,bool,string,uint)\""
																	},
																	"value": "log(string,bool,string,uint)"
																},
																{
																	"id": 7044,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7031,
																	"src": "34881:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7045,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7033,
																	"src": "34885:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7046,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7035,
																	"src": "34889:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7047,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7037,
																	"src": "34893:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_34cb308d42fc37e3a239bcd0d717cf3713a336733737bee1d82ac9061e969d72",
																		"typeString": "literal_string \"log(string,bool,string,uint)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 7041,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "34825:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7042,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "34825:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7048,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "34825:71:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7040,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "34809:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7049,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "34809:88:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7050,
												"nodeType": "ExpressionStatement",
												"src": "34809:88:12"
											}
										]
									},
									"id": 7052,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "34733:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7038,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7031,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "34751:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7052,
												"src": "34737:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7030,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "34737:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7033,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "34760:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7052,
												"src": "34755:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7032,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "34755:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7035,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "34778:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7052,
												"src": "34764:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7034,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "34764:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7037,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "34787:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7052,
												"src": "34782:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7036,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "34782:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "34736:54:12"
									},
									"returnParameters": {
										"id": 7039,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "34805:0:12"
									},
									"scope": 10618,
									"src": "34724:177:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7074,
										"nodeType": "Block",
										"src": "34994:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c626f6f6c2c737472696e672c737472696e6729",
																	"id": 7066,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "35038:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_a826caebc65f4a71211c1c7fd8dc9bdd856d7ef7dbeef42d8af156e9f73bc47d",
																		"typeString": "literal_string \"log(string,bool,string,string)\""
																	},
																	"value": "log(string,bool,string,string)"
																},
																{
																	"id": 7067,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7054,
																	"src": "35072:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7068,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7056,
																	"src": "35076:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7069,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7058,
																	"src": "35080:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7070,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7060,
																	"src": "35084:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_a826caebc65f4a71211c1c7fd8dc9bdd856d7ef7dbeef42d8af156e9f73bc47d",
																		"typeString": "literal_string \"log(string,bool,string,string)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 7064,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "35014:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7065,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "35014:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7071,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "35014:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7063,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "34998:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7072,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "34998:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7073,
												"nodeType": "ExpressionStatement",
												"src": "34998:90:12"
											}
										]
									},
									"id": 7075,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "34913:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7061,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7054,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "34931:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7075,
												"src": "34917:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7053,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "34917:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7056,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "34940:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7075,
												"src": "34935:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7055,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "34935:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7058,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "34958:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7075,
												"src": "34944:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7057,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "34944:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7060,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "34976:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7075,
												"src": "34962:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7059,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "34962:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "34916:63:12"
									},
									"returnParameters": {
										"id": 7062,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "34994:0:12"
									},
									"scope": 10618,
									"src": "34904:188:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7097,
										"nodeType": "Block",
										"src": "35176:96:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c626f6f6c2c737472696e672c626f6f6c29",
																	"id": 7089,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "35220:30:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_3f8a701d00386d6ad9c7b7a930805b985bcbbe108e894a7d5cb9493e87e57e8b",
																		"typeString": "literal_string \"log(string,bool,string,bool)\""
																	},
																	"value": "log(string,bool,string,bool)"
																},
																{
																	"id": 7090,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7077,
																	"src": "35252:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7091,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7079,
																	"src": "35256:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7092,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7081,
																	"src": "35260:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7093,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7083,
																	"src": "35264:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_3f8a701d00386d6ad9c7b7a930805b985bcbbe108e894a7d5cb9493e87e57e8b",
																		"typeString": "literal_string \"log(string,bool,string,bool)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 7087,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "35196:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7088,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "35196:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7094,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "35196:71:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7086,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "35180:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7095,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "35180:88:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7096,
												"nodeType": "ExpressionStatement",
												"src": "35180:88:12"
											}
										]
									},
									"id": 7098,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "35104:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7084,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7077,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "35122:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7098,
												"src": "35108:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7076,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "35108:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7079,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "35131:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7098,
												"src": "35126:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7078,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "35126:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7081,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "35149:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7098,
												"src": "35135:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7080,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "35135:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7083,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "35158:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7098,
												"src": "35153:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7082,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "35153:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "35107:54:12"
									},
									"returnParameters": {
										"id": 7085,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "35176:0:12"
									},
									"scope": 10618,
									"src": "35095:177:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7120,
										"nodeType": "Block",
										"src": "35359:99:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c626f6f6c2c737472696e672c6164647265737329",
																	"id": 7112,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "35403:33:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_e0625b292fa5cbc865b55f61713cbbe0ce7abb244ec2df45291ea19c30ddfaf8",
																		"typeString": "literal_string \"log(string,bool,string,address)\""
																	},
																	"value": "log(string,bool,string,address)"
																},
																{
																	"id": 7113,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7100,
																	"src": "35438:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7114,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7102,
																	"src": "35442:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7115,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7104,
																	"src": "35446:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7116,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7106,
																	"src": "35450:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_e0625b292fa5cbc865b55f61713cbbe0ce7abb244ec2df45291ea19c30ddfaf8",
																		"typeString": "literal_string \"log(string,bool,string,address)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 7110,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "35379:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7111,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "35379:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7117,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "35379:74:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7109,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "35363:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7118,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "35363:91:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7119,
												"nodeType": "ExpressionStatement",
												"src": "35363:91:12"
											}
										]
									},
									"id": 7121,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "35284:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7107,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7100,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "35302:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7121,
												"src": "35288:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7099,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "35288:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7102,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "35311:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7121,
												"src": "35306:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7101,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "35306:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7104,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "35329:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7121,
												"src": "35315:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7103,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "35315:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7106,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "35341:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7121,
												"src": "35333:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7105,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "35333:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "35287:57:12"
									},
									"returnParameters": {
										"id": 7108,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "35359:0:12"
									},
									"scope": 10618,
									"src": "35275:183:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7143,
										"nodeType": "Block",
										"src": "35533:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c626f6f6c2c626f6f6c2c75696e7429",
																	"id": 7135,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "35577:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_807531e8eafdd7a15a803e586dd9a01b2aa8ae2cdd52f093775c0dcb0c977edf",
																		"typeString": "literal_string \"log(string,bool,bool,uint)\""
																	},
																	"value": "log(string,bool,bool,uint)"
																},
																{
																	"id": 7136,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7123,
																	"src": "35607:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7137,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7125,
																	"src": "35611:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7138,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7127,
																	"src": "35615:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7139,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7129,
																	"src": "35619:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_807531e8eafdd7a15a803e586dd9a01b2aa8ae2cdd52f093775c0dcb0c977edf",
																		"typeString": "literal_string \"log(string,bool,bool,uint)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 7133,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "35553:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7134,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "35553:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7140,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "35553:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7132,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "35537:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7141,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "35537:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7142,
												"nodeType": "ExpressionStatement",
												"src": "35537:86:12"
											}
										]
									},
									"id": 7144,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "35470:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7130,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7123,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "35488:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7144,
												"src": "35474:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7122,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "35474:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7125,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "35497:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7144,
												"src": "35492:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7124,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "35492:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7127,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "35506:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7144,
												"src": "35501:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7126,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "35501:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7129,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "35515:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7144,
												"src": "35510:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7128,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "35510:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "35473:45:12"
									},
									"returnParameters": {
										"id": 7131,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "35533:0:12"
									},
									"scope": 10618,
									"src": "35461:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7166,
										"nodeType": "Block",
										"src": "35711:96:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c626f6f6c2c626f6f6c2c737472696e6729",
																	"id": 7158,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "35755:30:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_9d22d5dd5fa6b44920526f32944af8a0b12651bcfe7d5e4d9330573146eaf058",
																		"typeString": "literal_string \"log(string,bool,bool,string)\""
																	},
																	"value": "log(string,bool,bool,string)"
																},
																{
																	"id": 7159,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7146,
																	"src": "35787:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7160,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7148,
																	"src": "35791:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7161,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7150,
																	"src": "35795:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7162,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7152,
																	"src": "35799:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_9d22d5dd5fa6b44920526f32944af8a0b12651bcfe7d5e4d9330573146eaf058",
																		"typeString": "literal_string \"log(string,bool,bool,string)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 7156,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "35731:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7157,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "35731:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7163,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "35731:71:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7155,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "35715:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7164,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "35715:88:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7165,
												"nodeType": "ExpressionStatement",
												"src": "35715:88:12"
											}
										]
									},
									"id": 7167,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "35639:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7153,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7146,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "35657:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7167,
												"src": "35643:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7145,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "35643:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7148,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "35666:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7167,
												"src": "35661:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7147,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "35661:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7150,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "35675:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7167,
												"src": "35670:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7149,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "35670:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7152,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "35693:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7167,
												"src": "35679:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7151,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "35679:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "35642:54:12"
									},
									"returnParameters": {
										"id": 7154,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "35711:0:12"
									},
									"scope": 10618,
									"src": "35630:177:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7189,
										"nodeType": "Block",
										"src": "35882:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c626f6f6c2c626f6f6c2c626f6f6c29",
																	"id": 7181,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "35926:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_895af8c5b50078ceec3119054e20583155eeb3e1a8f56b8ed56efbec57456ad2",
																		"typeString": "literal_string \"log(string,bool,bool,bool)\""
																	},
																	"value": "log(string,bool,bool,bool)"
																},
																{
																	"id": 7182,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7169,
																	"src": "35956:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7183,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7171,
																	"src": "35960:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7184,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7173,
																	"src": "35964:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7185,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7175,
																	"src": "35968:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_895af8c5b50078ceec3119054e20583155eeb3e1a8f56b8ed56efbec57456ad2",
																		"typeString": "literal_string \"log(string,bool,bool,bool)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 7179,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "35902:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7180,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "35902:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7186,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "35902:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7178,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "35886:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7187,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "35886:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7188,
												"nodeType": "ExpressionStatement",
												"src": "35886:86:12"
											}
										]
									},
									"id": 7190,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "35819:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7176,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7169,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "35837:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7190,
												"src": "35823:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7168,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "35823:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7171,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "35846:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7190,
												"src": "35841:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7170,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "35841:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7173,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "35855:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7190,
												"src": "35850:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7172,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "35850:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7175,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "35864:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7190,
												"src": "35859:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7174,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "35859:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "35822:45:12"
									},
									"returnParameters": {
										"id": 7177,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "35882:0:12"
									},
									"scope": 10618,
									"src": "35810:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7212,
										"nodeType": "Block",
										"src": "36054:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c626f6f6c2c626f6f6c2c6164647265737329",
																	"id": 7204,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "36098:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_7190a529624f3e9168945b9053b9648f6439313f31cad0801b50f9dc38a45d4d",
																		"typeString": "literal_string \"log(string,bool,bool,address)\""
																	},
																	"value": "log(string,bool,bool,address)"
																},
																{
																	"id": 7205,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7192,
																	"src": "36131:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7206,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7194,
																	"src": "36135:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7207,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7196,
																	"src": "36139:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7208,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7198,
																	"src": "36143:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_7190a529624f3e9168945b9053b9648f6439313f31cad0801b50f9dc38a45d4d",
																		"typeString": "literal_string \"log(string,bool,bool,address)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 7202,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "36074:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7203,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "36074:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7209,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "36074:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7201,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "36058:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7210,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "36058:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7211,
												"nodeType": "ExpressionStatement",
												"src": "36058:89:12"
											}
										]
									},
									"id": 7213,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "35988:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7199,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7192,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "36006:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7213,
												"src": "35992:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7191,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "35992:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7194,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "36015:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7213,
												"src": "36010:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7193,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "36010:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7196,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "36024:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7213,
												"src": "36019:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7195,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "36019:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7198,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "36036:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7213,
												"src": "36028:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7197,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "36028:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "35991:48:12"
									},
									"returnParameters": {
										"id": 7200,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "36054:0:12"
									},
									"scope": 10618,
									"src": "35979:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7235,
										"nodeType": "Block",
										"src": "36229:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c626f6f6c2c616464726573732c75696e7429",
																	"id": 7227,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "36273:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_28df4e96d50017c69e64253ea877c992512b689fb9fed17cf6af78f104f1200b",
																		"typeString": "literal_string \"log(string,bool,address,uint)\""
																	},
																	"value": "log(string,bool,address,uint)"
																},
																{
																	"id": 7228,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7215,
																	"src": "36306:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7229,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7217,
																	"src": "36310:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7230,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7219,
																	"src": "36314:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 7231,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7221,
																	"src": "36318:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_28df4e96d50017c69e64253ea877c992512b689fb9fed17cf6af78f104f1200b",
																		"typeString": "literal_string \"log(string,bool,address,uint)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 7225,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "36249:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7226,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "36249:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7232,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "36249:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7224,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "36233:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7233,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "36233:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7234,
												"nodeType": "ExpressionStatement",
												"src": "36233:89:12"
											}
										]
									},
									"id": 7236,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "36163:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7222,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7215,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "36181:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7236,
												"src": "36167:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7214,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "36167:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7217,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "36190:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7236,
												"src": "36185:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7216,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "36185:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7219,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "36202:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7236,
												"src": "36194:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7218,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "36194:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7221,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "36211:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7236,
												"src": "36206:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7220,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "36206:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "36166:48:12"
									},
									"returnParameters": {
										"id": 7223,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "36229:0:12"
									},
									"scope": 10618,
									"src": "36154:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7258,
										"nodeType": "Block",
										"src": "36413:99:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c626f6f6c2c616464726573732c737472696e6729",
																	"id": 7250,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "36457:33:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_2d8e33a4e52268aad313274a8446eec6f40466a28da2456a8f12d83b298c13ef",
																		"typeString": "literal_string \"log(string,bool,address,string)\""
																	},
																	"value": "log(string,bool,address,string)"
																},
																{
																	"id": 7251,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7238,
																	"src": "36492:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7252,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7240,
																	"src": "36496:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7253,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7242,
																	"src": "36500:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 7254,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7244,
																	"src": "36504:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_2d8e33a4e52268aad313274a8446eec6f40466a28da2456a8f12d83b298c13ef",
																		"typeString": "literal_string \"log(string,bool,address,string)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 7248,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "36433:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7249,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "36433:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7255,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "36433:74:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7247,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "36417:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7256,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "36417:91:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7257,
												"nodeType": "ExpressionStatement",
												"src": "36417:91:12"
											}
										]
									},
									"id": 7259,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "36338:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7245,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7238,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "36356:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7259,
												"src": "36342:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7237,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "36342:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7240,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "36365:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7259,
												"src": "36360:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7239,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "36360:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7242,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "36377:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7259,
												"src": "36369:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7241,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "36369:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7244,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "36395:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7259,
												"src": "36381:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7243,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "36381:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "36341:57:12"
									},
									"returnParameters": {
										"id": 7246,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "36413:0:12"
									},
									"scope": 10618,
									"src": "36329:183:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7281,
										"nodeType": "Block",
										"src": "36590:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c626f6f6c2c616464726573732c626f6f6c29",
																	"id": 7273,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "36634:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_958c28c6e7bd79de7ce7f6f112cbcb194d9e383764dfb947492ee1374ff5c482",
																		"typeString": "literal_string \"log(string,bool,address,bool)\""
																	},
																	"value": "log(string,bool,address,bool)"
																},
																{
																	"id": 7274,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7261,
																	"src": "36667:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7275,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7263,
																	"src": "36671:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7276,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7265,
																	"src": "36675:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 7277,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7267,
																	"src": "36679:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_958c28c6e7bd79de7ce7f6f112cbcb194d9e383764dfb947492ee1374ff5c482",
																		"typeString": "literal_string \"log(string,bool,address,bool)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 7271,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "36610:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7272,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "36610:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7278,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "36610:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7270,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "36594:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7279,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "36594:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7280,
												"nodeType": "ExpressionStatement",
												"src": "36594:89:12"
											}
										]
									},
									"id": 7282,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "36524:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7268,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7261,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "36542:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7282,
												"src": "36528:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7260,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "36528:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7263,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "36551:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7282,
												"src": "36546:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7262,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "36546:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7265,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "36563:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7282,
												"src": "36555:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7264,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "36555:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7267,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "36572:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7282,
												"src": "36567:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7266,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "36567:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "36527:48:12"
									},
									"returnParameters": {
										"id": 7269,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "36590:0:12"
									},
									"scope": 10618,
									"src": "36515:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7304,
										"nodeType": "Block",
										"src": "36768:100:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c626f6f6c2c616464726573732c6164647265737329",
																	"id": 7296,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "36812:34:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_33e9dd1deb33816160eb59d86987de501b214bedbbe3c70103eff4092834b53d",
																		"typeString": "literal_string \"log(string,bool,address,address)\""
																	},
																	"value": "log(string,bool,address,address)"
																},
																{
																	"id": 7297,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7284,
																	"src": "36848:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7298,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7286,
																	"src": "36852:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7299,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7288,
																	"src": "36856:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 7300,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7290,
																	"src": "36860:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_33e9dd1deb33816160eb59d86987de501b214bedbbe3c70103eff4092834b53d",
																		"typeString": "literal_string \"log(string,bool,address,address)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 7294,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "36788:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7295,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "36788:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7301,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "36788:75:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7293,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "36772:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7302,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "36772:92:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7303,
												"nodeType": "ExpressionStatement",
												"src": "36772:92:12"
											}
										]
									},
									"id": 7305,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "36699:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7291,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7284,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "36717:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7305,
												"src": "36703:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7283,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "36703:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7286,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "36726:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7305,
												"src": "36721:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7285,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "36721:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7288,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "36738:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7305,
												"src": "36730:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7287,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "36730:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7290,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "36750:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7305,
												"src": "36742:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7289,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "36742:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "36702:51:12"
									},
									"returnParameters": {
										"id": 7292,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "36768:0:12"
									},
									"scope": 10618,
									"src": "36690:178:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7327,
										"nodeType": "Block",
										"src": "36946:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c616464726573732c75696e742c75696e7429",
																	"id": 7319,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "36990:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_daa394bd4914eaece965f4173c7699746dff411e470b03385f052bd7b13f1bd3",
																		"typeString": "literal_string \"log(string,address,uint,uint)\""
																	},
																	"value": "log(string,address,uint,uint)"
																},
																{
																	"id": 7320,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7307,
																	"src": "37023:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7321,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7309,
																	"src": "37027:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 7322,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7311,
																	"src": "37031:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 7323,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7313,
																	"src": "37035:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_daa394bd4914eaece965f4173c7699746dff411e470b03385f052bd7b13f1bd3",
																		"typeString": "literal_string \"log(string,address,uint,uint)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 7317,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "36966:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7318,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "36966:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7324,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "36966:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7316,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "36950:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7325,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "36950:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7326,
												"nodeType": "ExpressionStatement",
												"src": "36950:89:12"
											}
										]
									},
									"id": 7328,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "36880:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7314,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7307,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "36898:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7328,
												"src": "36884:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7306,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "36884:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7309,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "36910:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7328,
												"src": "36902:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7308,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "36902:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7311,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "36919:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7328,
												"src": "36914:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7310,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "36914:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7313,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "36928:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7328,
												"src": "36923:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7312,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "36923:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "36883:48:12"
									},
									"returnParameters": {
										"id": 7315,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "36946:0:12"
									},
									"scope": 10618,
									"src": "36871:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7350,
										"nodeType": "Block",
										"src": "37130:99:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c616464726573732c75696e742c737472696e6729",
																	"id": 7342,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "37174:33:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_4c55f234d048f08e770926729ee5d8a9c70d6b9a607ce037165c7e0f36155a98",
																		"typeString": "literal_string \"log(string,address,uint,string)\""
																	},
																	"value": "log(string,address,uint,string)"
																},
																{
																	"id": 7343,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7330,
																	"src": "37209:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7344,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7332,
																	"src": "37213:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 7345,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7334,
																	"src": "37217:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 7346,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7336,
																	"src": "37221:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_4c55f234d048f08e770926729ee5d8a9c70d6b9a607ce037165c7e0f36155a98",
																		"typeString": "literal_string \"log(string,address,uint,string)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 7340,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "37150:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7341,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "37150:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7347,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "37150:74:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7339,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "37134:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7348,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "37134:91:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7349,
												"nodeType": "ExpressionStatement",
												"src": "37134:91:12"
											}
										]
									},
									"id": 7351,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "37055:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7337,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7330,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "37073:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7351,
												"src": "37059:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7329,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "37059:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7332,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "37085:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7351,
												"src": "37077:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7331,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "37077:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7334,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "37094:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7351,
												"src": "37089:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7333,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "37089:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7336,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "37112:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7351,
												"src": "37098:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7335,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "37098:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "37058:57:12"
									},
									"returnParameters": {
										"id": 7338,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "37130:0:12"
									},
									"scope": 10618,
									"src": "37046:183:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7373,
										"nodeType": "Block",
										"src": "37307:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c616464726573732c75696e742c626f6f6c29",
																	"id": 7365,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "37351:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_5ac1c13c91f65a91284d9d77ba7484e75b0a3dd9b57a01fd497babb7d6ebc554",
																		"typeString": "literal_string \"log(string,address,uint,bool)\""
																	},
																	"value": "log(string,address,uint,bool)"
																},
																{
																	"id": 7366,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7353,
																	"src": "37384:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7367,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7355,
																	"src": "37388:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 7368,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7357,
																	"src": "37392:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 7369,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7359,
																	"src": "37396:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_5ac1c13c91f65a91284d9d77ba7484e75b0a3dd9b57a01fd497babb7d6ebc554",
																		"typeString": "literal_string \"log(string,address,uint,bool)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 7363,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "37327:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7364,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "37327:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7370,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "37327:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7362,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "37311:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7371,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "37311:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7372,
												"nodeType": "ExpressionStatement",
												"src": "37311:89:12"
											}
										]
									},
									"id": 7374,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "37241:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7360,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7353,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "37259:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7374,
												"src": "37245:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7352,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "37245:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7355,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "37271:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7374,
												"src": "37263:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7354,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "37263:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7357,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "37280:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7374,
												"src": "37275:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7356,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "37275:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7359,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "37289:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7374,
												"src": "37284:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7358,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "37284:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "37244:48:12"
									},
									"returnParameters": {
										"id": 7361,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "37307:0:12"
									},
									"scope": 10618,
									"src": "37232:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7396,
										"nodeType": "Block",
										"src": "37485:100:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c616464726573732c75696e742c6164647265737329",
																	"id": 7388,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "37529:34:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_a366ec808c8af1aa091e8102642939a99436cf04d3dfac2ae23c299404f821b2",
																		"typeString": "literal_string \"log(string,address,uint,address)\""
																	},
																	"value": "log(string,address,uint,address)"
																},
																{
																	"id": 7389,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7376,
																	"src": "37565:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7390,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7378,
																	"src": "37569:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 7391,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7380,
																	"src": "37573:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 7392,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7382,
																	"src": "37577:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_a366ec808c8af1aa091e8102642939a99436cf04d3dfac2ae23c299404f821b2",
																		"typeString": "literal_string \"log(string,address,uint,address)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 7386,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "37505:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7387,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "37505:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7393,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "37505:75:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7385,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "37489:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7394,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "37489:92:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7395,
												"nodeType": "ExpressionStatement",
												"src": "37489:92:12"
											}
										]
									},
									"id": 7397,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "37416:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7383,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7376,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "37434:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7397,
												"src": "37420:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7375,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "37420:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7378,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "37446:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7397,
												"src": "37438:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7377,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "37438:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7380,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "37455:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7397,
												"src": "37450:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7379,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "37450:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7382,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "37467:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7397,
												"src": "37459:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7381,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "37459:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "37419:51:12"
									},
									"returnParameters": {
										"id": 7384,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "37485:0:12"
									},
									"scope": 10618,
									"src": "37407:178:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7419,
										"nodeType": "Block",
										"src": "37672:99:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c616464726573732c737472696e672c75696e7429",
																	"id": 7411,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "37716:33:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_8f624be9ea3983abac9c65ced8f562a492ebb84e6f74cd40f35387eff4d66349",
																		"typeString": "literal_string \"log(string,address,string,uint)\""
																	},
																	"value": "log(string,address,string,uint)"
																},
																{
																	"id": 7412,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7399,
																	"src": "37751:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7413,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7401,
																	"src": "37755:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 7414,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7403,
																	"src": "37759:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7415,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7405,
																	"src": "37763:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_8f624be9ea3983abac9c65ced8f562a492ebb84e6f74cd40f35387eff4d66349",
																		"typeString": "literal_string \"log(string,address,string,uint)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 7409,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "37692:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7410,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "37692:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7416,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "37692:74:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7408,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "37676:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7417,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "37676:91:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7418,
												"nodeType": "ExpressionStatement",
												"src": "37676:91:12"
											}
										]
									},
									"id": 7420,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "37597:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7406,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7399,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "37615:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7420,
												"src": "37601:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7398,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "37601:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7401,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "37627:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7420,
												"src": "37619:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7400,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "37619:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7403,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "37645:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7420,
												"src": "37631:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7402,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "37631:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7405,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "37654:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7420,
												"src": "37649:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7404,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "37649:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "37600:57:12"
									},
									"returnParameters": {
										"id": 7407,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "37672:0:12"
									},
									"scope": 10618,
									"src": "37588:183:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7442,
										"nodeType": "Block",
										"src": "37867:101:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c616464726573732c737472696e672c737472696e6729",
																	"id": 7434,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "37911:35:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_245986f22170901865e76245a48ee28ce0127ca357f6ad576a72190e1d358797",
																		"typeString": "literal_string \"log(string,address,string,string)\""
																	},
																	"value": "log(string,address,string,string)"
																},
																{
																	"id": 7435,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7422,
																	"src": "37948:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7436,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7424,
																	"src": "37952:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 7437,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7426,
																	"src": "37956:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7438,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7428,
																	"src": "37960:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_245986f22170901865e76245a48ee28ce0127ca357f6ad576a72190e1d358797",
																		"typeString": "literal_string \"log(string,address,string,string)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 7432,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "37887:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7433,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "37887:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7439,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "37887:76:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7431,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "37871:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7440,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "37871:93:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7441,
												"nodeType": "ExpressionStatement",
												"src": "37871:93:12"
											}
										]
									},
									"id": 7443,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "37783:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7429,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7422,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "37801:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7443,
												"src": "37787:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7421,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "37787:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7424,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "37813:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7443,
												"src": "37805:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7423,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "37805:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7426,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "37831:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7443,
												"src": "37817:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7425,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "37817:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7428,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "37849:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7443,
												"src": "37835:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7427,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "37835:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "37786:66:12"
									},
									"returnParameters": {
										"id": 7430,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "37867:0:12"
									},
									"scope": 10618,
									"src": "37774:194:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7465,
										"nodeType": "Block",
										"src": "38055:99:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c616464726573732c737472696e672c626f6f6c29",
																	"id": 7457,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "38099:33:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_5f15d28c15ddff15fba1c00f6a4975ae6af8b36c9b2a875bf59bd45049046154",
																		"typeString": "literal_string \"log(string,address,string,bool)\""
																	},
																	"value": "log(string,address,string,bool)"
																},
																{
																	"id": 7458,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7445,
																	"src": "38134:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7459,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7447,
																	"src": "38138:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 7460,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7449,
																	"src": "38142:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7461,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7451,
																	"src": "38146:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_5f15d28c15ddff15fba1c00f6a4975ae6af8b36c9b2a875bf59bd45049046154",
																		"typeString": "literal_string \"log(string,address,string,bool)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 7455,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "38075:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7456,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "38075:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7462,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "38075:74:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7454,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "38059:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7463,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "38059:91:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7464,
												"nodeType": "ExpressionStatement",
												"src": "38059:91:12"
											}
										]
									},
									"id": 7466,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "37980:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7452,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7445,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "37998:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7466,
												"src": "37984:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7444,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "37984:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7447,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "38010:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7466,
												"src": "38002:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7446,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "38002:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7449,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "38028:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7466,
												"src": "38014:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7448,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "38014:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7451,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "38037:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7466,
												"src": "38032:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7450,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "38032:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "37983:57:12"
									},
									"returnParameters": {
										"id": 7453,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "38055:0:12"
									},
									"scope": 10618,
									"src": "37971:183:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7488,
										"nodeType": "Block",
										"src": "38244:102:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c616464726573732c737472696e672c6164647265737329",
																	"id": 7480,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "38288:36:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_aabc9a311ab49789834b120d81155a7fee846a9f0d4f740bbeb970770190c82d",
																		"typeString": "literal_string \"log(string,address,string,address)\""
																	},
																	"value": "log(string,address,string,address)"
																},
																{
																	"id": 7481,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7468,
																	"src": "38326:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7482,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7470,
																	"src": "38330:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 7483,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7472,
																	"src": "38334:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7484,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7474,
																	"src": "38338:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_aabc9a311ab49789834b120d81155a7fee846a9f0d4f740bbeb970770190c82d",
																		"typeString": "literal_string \"log(string,address,string,address)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 7478,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "38264:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7479,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "38264:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7485,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "38264:77:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7477,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "38248:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7486,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "38248:94:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7487,
												"nodeType": "ExpressionStatement",
												"src": "38248:94:12"
											}
										]
									},
									"id": 7489,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "38166:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7475,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7468,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "38184:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7489,
												"src": "38170:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7467,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "38170:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7470,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "38196:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7489,
												"src": "38188:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7469,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "38188:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7472,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "38214:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7489,
												"src": "38200:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7471,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "38200:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7474,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "38226:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7489,
												"src": "38218:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7473,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "38218:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "38169:60:12"
									},
									"returnParameters": {
										"id": 7476,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "38244:0:12"
									},
									"scope": 10618,
									"src": "38157:189:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7511,
										"nodeType": "Block",
										"src": "38424:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c616464726573732c626f6f6c2c75696e7429",
																	"id": 7503,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "38468:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_c5d1bb8ba57e795e9925065473f653a381a99be37bdcfbeaf49f38097f35af7f",
																		"typeString": "literal_string \"log(string,address,bool,uint)\""
																	},
																	"value": "log(string,address,bool,uint)"
																},
																{
																	"id": 7504,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7491,
																	"src": "38501:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7505,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7493,
																	"src": "38505:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 7506,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7495,
																	"src": "38509:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7507,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7497,
																	"src": "38513:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_c5d1bb8ba57e795e9925065473f653a381a99be37bdcfbeaf49f38097f35af7f",
																		"typeString": "literal_string \"log(string,address,bool,uint)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 7501,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "38444:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7502,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "38444:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7508,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "38444:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7500,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "38428:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7509,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "38428:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7510,
												"nodeType": "ExpressionStatement",
												"src": "38428:89:12"
											}
										]
									},
									"id": 7512,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "38358:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7498,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7491,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "38376:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7512,
												"src": "38362:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7490,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "38362:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7493,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "38388:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7512,
												"src": "38380:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7492,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "38380:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7495,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "38397:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7512,
												"src": "38392:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7494,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "38392:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7497,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "38406:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7512,
												"src": "38401:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7496,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "38401:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "38361:48:12"
									},
									"returnParameters": {
										"id": 7499,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "38424:0:12"
									},
									"scope": 10618,
									"src": "38349:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7534,
										"nodeType": "Block",
										"src": "38608:99:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c616464726573732c626f6f6c2c737472696e6729",
																	"id": 7526,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "38652:33:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_0454c0793d4a41e5f630eb9a887926f8a67ff9e817a5feb968698354ac9d22fb",
																		"typeString": "literal_string \"log(string,address,bool,string)\""
																	},
																	"value": "log(string,address,bool,string)"
																},
																{
																	"id": 7527,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7514,
																	"src": "38687:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7528,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7516,
																	"src": "38691:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 7529,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7518,
																	"src": "38695:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7530,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7520,
																	"src": "38699:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_0454c0793d4a41e5f630eb9a887926f8a67ff9e817a5feb968698354ac9d22fb",
																		"typeString": "literal_string \"log(string,address,bool,string)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 7524,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "38628:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7525,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "38628:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7531,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "38628:74:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7523,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "38612:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7532,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "38612:91:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7533,
												"nodeType": "ExpressionStatement",
												"src": "38612:91:12"
											}
										]
									},
									"id": 7535,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "38533:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7521,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7514,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "38551:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7535,
												"src": "38537:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7513,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "38537:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7516,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "38563:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7535,
												"src": "38555:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7515,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "38555:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7518,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "38572:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7535,
												"src": "38567:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7517,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "38567:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7520,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "38590:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7535,
												"src": "38576:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7519,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "38576:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "38536:57:12"
									},
									"returnParameters": {
										"id": 7522,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "38608:0:12"
									},
									"scope": 10618,
									"src": "38524:183:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7557,
										"nodeType": "Block",
										"src": "38785:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c616464726573732c626f6f6c2c626f6f6c29",
																	"id": 7549,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "38829:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_79884c2bc85eb73c854df1610df373a05f191b834f79cd47a7ab28be2308c039",
																		"typeString": "literal_string \"log(string,address,bool,bool)\""
																	},
																	"value": "log(string,address,bool,bool)"
																},
																{
																	"id": 7550,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7537,
																	"src": "38862:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7551,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7539,
																	"src": "38866:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 7552,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7541,
																	"src": "38870:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7553,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7543,
																	"src": "38874:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_79884c2bc85eb73c854df1610df373a05f191b834f79cd47a7ab28be2308c039",
																		"typeString": "literal_string \"log(string,address,bool,bool)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 7547,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "38805:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7548,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "38805:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7554,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "38805:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7546,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "38789:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7555,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "38789:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7556,
												"nodeType": "ExpressionStatement",
												"src": "38789:89:12"
											}
										]
									},
									"id": 7558,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "38719:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7544,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7537,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "38737:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7558,
												"src": "38723:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7536,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "38723:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7539,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "38749:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7558,
												"src": "38741:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7538,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "38741:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7541,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "38758:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7558,
												"src": "38753:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7540,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "38753:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7543,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "38767:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7558,
												"src": "38762:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7542,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "38762:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "38722:48:12"
									},
									"returnParameters": {
										"id": 7545,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "38785:0:12"
									},
									"scope": 10618,
									"src": "38710:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7580,
										"nodeType": "Block",
										"src": "38963:100:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c616464726573732c626f6f6c2c6164647265737329",
																	"id": 7572,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "39007:34:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_223603bd064d72559a7d519ad0f1c6a8da707a49f5718dfa23a5ccb01bf9ab76",
																		"typeString": "literal_string \"log(string,address,bool,address)\""
																	},
																	"value": "log(string,address,bool,address)"
																},
																{
																	"id": 7573,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7560,
																	"src": "39043:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7574,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7562,
																	"src": "39047:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 7575,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7564,
																	"src": "39051:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7576,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7566,
																	"src": "39055:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_223603bd064d72559a7d519ad0f1c6a8da707a49f5718dfa23a5ccb01bf9ab76",
																		"typeString": "literal_string \"log(string,address,bool,address)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 7570,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "38983:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7571,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "38983:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7577,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "38983:75:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7569,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "38967:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7578,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "38967:92:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7579,
												"nodeType": "ExpressionStatement",
												"src": "38967:92:12"
											}
										]
									},
									"id": 7581,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "38894:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7567,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7560,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "38912:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7581,
												"src": "38898:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7559,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "38898:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7562,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "38924:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7581,
												"src": "38916:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7561,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "38916:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7564,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "38933:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7581,
												"src": "38928:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7563,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "38928:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7566,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "38945:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7581,
												"src": "38937:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7565,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "38937:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "38897:51:12"
									},
									"returnParameters": {
										"id": 7568,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "38963:0:12"
									},
									"scope": 10618,
									"src": "38885:178:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7603,
										"nodeType": "Block",
										"src": "39144:100:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c616464726573732c616464726573732c75696e7429",
																	"id": 7595,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "39188:34:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_6eb7943d4272e495e7f5cdeb25ef89b9c3c1042d5c1e0e6e11a8fdc842ff5e02",
																		"typeString": "literal_string \"log(string,address,address,uint)\""
																	},
																	"value": "log(string,address,address,uint)"
																},
																{
																	"id": 7596,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7583,
																	"src": "39224:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7597,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7585,
																	"src": "39228:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 7598,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7587,
																	"src": "39232:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 7599,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7589,
																	"src": "39236:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_6eb7943d4272e495e7f5cdeb25ef89b9c3c1042d5c1e0e6e11a8fdc842ff5e02",
																		"typeString": "literal_string \"log(string,address,address,uint)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 7593,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "39164:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7594,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "39164:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7600,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "39164:75:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7592,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "39148:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7601,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "39148:92:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7602,
												"nodeType": "ExpressionStatement",
												"src": "39148:92:12"
											}
										]
									},
									"id": 7604,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "39075:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7590,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7583,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "39093:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7604,
												"src": "39079:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7582,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "39079:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7585,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "39105:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7604,
												"src": "39097:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7584,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "39097:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7587,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "39117:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7604,
												"src": "39109:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7586,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "39109:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7589,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "39126:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7604,
												"src": "39121:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7588,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "39121:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "39078:51:12"
									},
									"returnParameters": {
										"id": 7591,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "39144:0:12"
									},
									"scope": 10618,
									"src": "39066:178:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7626,
										"nodeType": "Block",
										"src": "39334:102:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c616464726573732c616464726573732c737472696e6729",
																	"id": 7618,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "39378:36:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_800a1c6756a402b6162ca8653fd8e87e2c52d1c019c876e92eb2980479636a76",
																		"typeString": "literal_string \"log(string,address,address,string)\""
																	},
																	"value": "log(string,address,address,string)"
																},
																{
																	"id": 7619,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7606,
																	"src": "39416:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7620,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7608,
																	"src": "39420:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 7621,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7610,
																	"src": "39424:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 7622,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7612,
																	"src": "39428:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_800a1c6756a402b6162ca8653fd8e87e2c52d1c019c876e92eb2980479636a76",
																		"typeString": "literal_string \"log(string,address,address,string)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 7616,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "39354:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7617,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "39354:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7623,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "39354:77:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7615,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "39338:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7624,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "39338:94:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7625,
												"nodeType": "ExpressionStatement",
												"src": "39338:94:12"
											}
										]
									},
									"id": 7627,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "39256:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7613,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7606,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "39274:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7627,
												"src": "39260:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7605,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "39260:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7608,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "39286:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7627,
												"src": "39278:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7607,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "39278:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7610,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "39298:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7627,
												"src": "39290:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7609,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "39290:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7612,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "39316:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7627,
												"src": "39302:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7611,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "39302:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "39259:60:12"
									},
									"returnParameters": {
										"id": 7614,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "39334:0:12"
									},
									"scope": 10618,
									"src": "39247:189:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7649,
										"nodeType": "Block",
										"src": "39517:100:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c616464726573732c616464726573732c626f6f6c29",
																	"id": 7641,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "39561:34:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_b59dbd60587b4eeae521d5427cbc88bff32729f88aff059e7deb0a3a4320aaf4",
																		"typeString": "literal_string \"log(string,address,address,bool)\""
																	},
																	"value": "log(string,address,address,bool)"
																},
																{
																	"id": 7642,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7629,
																	"src": "39597:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7643,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7631,
																	"src": "39601:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 7644,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7633,
																	"src": "39605:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 7645,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7635,
																	"src": "39609:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_b59dbd60587b4eeae521d5427cbc88bff32729f88aff059e7deb0a3a4320aaf4",
																		"typeString": "literal_string \"log(string,address,address,bool)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 7639,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "39537:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7640,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "39537:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7646,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "39537:75:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7638,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "39521:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7647,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "39521:92:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7648,
												"nodeType": "ExpressionStatement",
												"src": "39521:92:12"
											}
										]
									},
									"id": 7650,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "39448:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7636,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7629,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "39466:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7650,
												"src": "39452:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7628,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "39452:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7631,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "39478:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7650,
												"src": "39470:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7630,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "39470:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7633,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "39490:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7650,
												"src": "39482:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7632,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "39482:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7635,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "39499:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7650,
												"src": "39494:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7634,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "39494:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "39451:51:12"
									},
									"returnParameters": {
										"id": 7637,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "39517:0:12"
									},
									"scope": 10618,
									"src": "39439:178:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7672,
										"nodeType": "Block",
										"src": "39701:103:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728737472696e672c616464726573732c616464726573732c6164647265737329",
																	"id": 7664,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "39745:37:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_ed8f28f6f4b5d54b1d37f705e543f556805f28b9d1bb3aef0ef7e57ef4992d15",
																		"typeString": "literal_string \"log(string,address,address,address)\""
																	},
																	"value": "log(string,address,address,address)"
																},
																{
																	"id": 7665,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7652,
																	"src": "39784:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7666,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7654,
																	"src": "39788:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 7667,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7656,
																	"src": "39792:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 7668,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7658,
																	"src": "39796:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_ed8f28f6f4b5d54b1d37f705e543f556805f28b9d1bb3aef0ef7e57ef4992d15",
																		"typeString": "literal_string \"log(string,address,address,address)\""
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 7662,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "39721:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7663,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "39721:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7669,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "39721:78:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7661,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "39705:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7670,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "39705:95:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7671,
												"nodeType": "ExpressionStatement",
												"src": "39705:95:12"
											}
										]
									},
									"id": 7673,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "39629:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7659,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7652,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "39647:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7673,
												"src": "39633:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7651,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "39633:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7654,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "39659:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7673,
												"src": "39651:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7653,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "39651:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7656,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "39671:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7673,
												"src": "39663:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7655,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "39663:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7658,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "39683:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7673,
												"src": "39675:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7657,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "39675:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "39632:54:12"
									},
									"returnParameters": {
										"id": 7660,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "39701:0:12"
									},
									"scope": 10618,
									"src": "39620:184:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7695,
										"nodeType": "Block",
										"src": "39870:92:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c75696e742c75696e742c75696e7429",
																	"id": 7687,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "39914:26:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_32dfa524f720faf836764864b46011dc5eb74e494d57e12b294a68048585d558",
																		"typeString": "literal_string \"log(bool,uint,uint,uint)\""
																	},
																	"value": "log(bool,uint,uint,uint)"
																},
																{
																	"id": 7688,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7675,
																	"src": "39942:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7689,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7677,
																	"src": "39946:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 7690,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7679,
																	"src": "39950:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 7691,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7681,
																	"src": "39954:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_32dfa524f720faf836764864b46011dc5eb74e494d57e12b294a68048585d558",
																		"typeString": "literal_string \"log(bool,uint,uint,uint)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 7685,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "39890:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7686,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "39890:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7692,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "39890:67:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7684,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "39874:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7693,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "39874:84:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7694,
												"nodeType": "ExpressionStatement",
												"src": "39874:84:12"
											}
										]
									},
									"id": 7696,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "39816:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7682,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7675,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "39825:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7696,
												"src": "39820:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7674,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "39820:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7677,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "39834:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7696,
												"src": "39829:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7676,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "39829:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7679,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "39843:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7696,
												"src": "39838:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7678,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "39838:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7681,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "39852:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7696,
												"src": "39847:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7680,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "39847:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "39819:36:12"
									},
									"returnParameters": {
										"id": 7683,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "39870:0:12"
									},
									"scope": 10618,
									"src": "39807:155:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7718,
										"nodeType": "Block",
										"src": "40037:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c75696e742c75696e742c737472696e6729",
																	"id": 7710,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "40081:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_da0666c89b01999f5c8980ce90fe9d0a367a350fd8d2ec7d1f94587b6281ebd3",
																		"typeString": "literal_string \"log(bool,uint,uint,string)\""
																	},
																	"value": "log(bool,uint,uint,string)"
																},
																{
																	"id": 7711,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7698,
																	"src": "40111:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7712,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7700,
																	"src": "40115:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 7713,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7702,
																	"src": "40119:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 7714,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7704,
																	"src": "40123:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_da0666c89b01999f5c8980ce90fe9d0a367a350fd8d2ec7d1f94587b6281ebd3",
																		"typeString": "literal_string \"log(bool,uint,uint,string)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 7708,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "40057:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7709,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "40057:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7715,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "40057:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7707,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "40041:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7716,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "40041:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7717,
												"nodeType": "ExpressionStatement",
												"src": "40041:86:12"
											}
										]
									},
									"id": 7719,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "39974:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7705,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7698,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "39983:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7719,
												"src": "39978:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7697,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "39978:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7700,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "39992:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7719,
												"src": "39987:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7699,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "39987:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7702,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "40001:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7719,
												"src": "39996:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7701,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "39996:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7704,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "40019:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7719,
												"src": "40005:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7703,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "40005:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "39977:45:12"
									},
									"returnParameters": {
										"id": 7706,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "40037:0:12"
									},
									"scope": 10618,
									"src": "39965:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7741,
										"nodeType": "Block",
										"src": "40197:92:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c75696e742c75696e742c626f6f6c29",
																	"id": 7733,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "40241:26:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_a41d81dec511172fa866e067fea22fe074eb6260a116ec078e2e0e79a7fd8ef2",
																		"typeString": "literal_string \"log(bool,uint,uint,bool)\""
																	},
																	"value": "log(bool,uint,uint,bool)"
																},
																{
																	"id": 7734,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7721,
																	"src": "40269:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7735,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7723,
																	"src": "40273:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 7736,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7725,
																	"src": "40277:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 7737,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7727,
																	"src": "40281:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_a41d81dec511172fa866e067fea22fe074eb6260a116ec078e2e0e79a7fd8ef2",
																		"typeString": "literal_string \"log(bool,uint,uint,bool)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 7731,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "40217:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7732,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "40217:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7738,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "40217:67:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7730,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "40201:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7739,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "40201:84:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7740,
												"nodeType": "ExpressionStatement",
												"src": "40201:84:12"
											}
										]
									},
									"id": 7742,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "40143:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7728,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7721,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "40152:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7742,
												"src": "40147:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7720,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "40147:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7723,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "40161:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7742,
												"src": "40156:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7722,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "40156:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7725,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "40170:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7742,
												"src": "40165:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7724,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "40165:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7727,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "40179:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7742,
												"src": "40174:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7726,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "40174:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "40146:36:12"
									},
									"returnParameters": {
										"id": 7729,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "40197:0:12"
									},
									"scope": 10618,
									"src": "40134:155:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7764,
										"nodeType": "Block",
										"src": "40358:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c75696e742c75696e742c6164647265737329",
																	"id": 7756,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "40402:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_f161b2216765f7746c6d62a843721a4e56fa83880464de0ff958770fd9704e33",
																		"typeString": "literal_string \"log(bool,uint,uint,address)\""
																	},
																	"value": "log(bool,uint,uint,address)"
																},
																{
																	"id": 7757,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7744,
																	"src": "40433:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7758,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7746,
																	"src": "40437:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 7759,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7748,
																	"src": "40441:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 7760,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7750,
																	"src": "40445:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_f161b2216765f7746c6d62a843721a4e56fa83880464de0ff958770fd9704e33",
																		"typeString": "literal_string \"log(bool,uint,uint,address)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 7754,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "40378:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7755,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "40378:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7761,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "40378:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7753,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "40362:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7762,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "40362:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7763,
												"nodeType": "ExpressionStatement",
												"src": "40362:87:12"
											}
										]
									},
									"id": 7765,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "40301:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7751,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7744,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "40310:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7765,
												"src": "40305:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7743,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "40305:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7746,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "40319:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7765,
												"src": "40314:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7745,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "40314:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7748,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "40328:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7765,
												"src": "40323:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7747,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "40323:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7750,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "40340:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7765,
												"src": "40332:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7749,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "40332:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "40304:39:12"
									},
									"returnParameters": {
										"id": 7752,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "40358:0:12"
									},
									"scope": 10618,
									"src": "40292:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7787,
										"nodeType": "Block",
										"src": "40528:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c75696e742c737472696e672c75696e7429",
																	"id": 7779,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "40572:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_4180011b79de474cdb825b6c4cfbc6d05927b06d92ab7c90ba7ff48d251e1813",
																		"typeString": "literal_string \"log(bool,uint,string,uint)\""
																	},
																	"value": "log(bool,uint,string,uint)"
																},
																{
																	"id": 7780,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7767,
																	"src": "40602:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7781,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7769,
																	"src": "40606:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 7782,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7771,
																	"src": "40610:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7783,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7773,
																	"src": "40614:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_4180011b79de474cdb825b6c4cfbc6d05927b06d92ab7c90ba7ff48d251e1813",
																		"typeString": "literal_string \"log(bool,uint,string,uint)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 7777,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "40548:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7778,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "40548:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7784,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "40548:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7776,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "40532:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7785,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "40532:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7786,
												"nodeType": "ExpressionStatement",
												"src": "40532:86:12"
											}
										]
									},
									"id": 7788,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "40465:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7774,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7767,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "40474:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7788,
												"src": "40469:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7766,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "40469:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7769,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "40483:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7788,
												"src": "40478:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7768,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "40478:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7771,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "40501:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7788,
												"src": "40487:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7770,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "40487:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7773,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "40510:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7788,
												"src": "40505:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7772,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "40505:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "40468:45:12"
									},
									"returnParameters": {
										"id": 7775,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "40528:0:12"
									},
									"scope": 10618,
									"src": "40456:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7810,
										"nodeType": "Block",
										"src": "40706:96:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c75696e742c737472696e672c737472696e6729",
																	"id": 7802,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "40750:30:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_d32a654812cf9bc5514c83d6adb00987a26a725c531c254b4dfe4eef4cdfc8ee",
																		"typeString": "literal_string \"log(bool,uint,string,string)\""
																	},
																	"value": "log(bool,uint,string,string)"
																},
																{
																	"id": 7803,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7790,
																	"src": "40782:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7804,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7792,
																	"src": "40786:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 7805,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7794,
																	"src": "40790:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7806,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7796,
																	"src": "40794:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_d32a654812cf9bc5514c83d6adb00987a26a725c531c254b4dfe4eef4cdfc8ee",
																		"typeString": "literal_string \"log(bool,uint,string,string)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 7800,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "40726:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7801,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "40726:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7807,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "40726:71:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7799,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "40710:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7808,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "40710:88:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7809,
												"nodeType": "ExpressionStatement",
												"src": "40710:88:12"
											}
										]
									},
									"id": 7811,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "40634:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7797,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7790,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "40643:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7811,
												"src": "40638:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7789,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "40638:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7792,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "40652:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7811,
												"src": "40647:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7791,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "40647:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7794,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "40670:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7811,
												"src": "40656:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7793,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "40656:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7796,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "40688:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7811,
												"src": "40674:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7795,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "40674:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "40637:54:12"
									},
									"returnParameters": {
										"id": 7798,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "40706:0:12"
									},
									"scope": 10618,
									"src": "40625:177:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7833,
										"nodeType": "Block",
										"src": "40877:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c75696e742c737472696e672c626f6f6c29",
																	"id": 7825,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "40921:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_91d2f813beb255a90e7ea595fb27355b60d93c3f818aac6b4c27388d34e0ea16",
																		"typeString": "literal_string \"log(bool,uint,string,bool)\""
																	},
																	"value": "log(bool,uint,string,bool)"
																},
																{
																	"id": 7826,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7813,
																	"src": "40951:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7827,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7815,
																	"src": "40955:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 7828,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7817,
																	"src": "40959:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7829,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7819,
																	"src": "40963:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_91d2f813beb255a90e7ea595fb27355b60d93c3f818aac6b4c27388d34e0ea16",
																		"typeString": "literal_string \"log(bool,uint,string,bool)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 7823,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "40897:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7824,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "40897:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7830,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "40897:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7822,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "40881:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7831,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "40881:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7832,
												"nodeType": "ExpressionStatement",
												"src": "40881:86:12"
											}
										]
									},
									"id": 7834,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "40814:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7820,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7813,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "40823:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7834,
												"src": "40818:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7812,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "40818:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7815,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "40832:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7834,
												"src": "40827:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7814,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "40827:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7817,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "40850:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7834,
												"src": "40836:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7816,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "40836:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7819,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "40859:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7834,
												"src": "40854:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7818,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "40854:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "40817:45:12"
									},
									"returnParameters": {
										"id": 7821,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "40877:0:12"
									},
									"scope": 10618,
									"src": "40805:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7856,
										"nodeType": "Block",
										"src": "41049:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c75696e742c737472696e672c6164647265737329",
																	"id": 7848,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "41093:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_a5c70d29969a9ad21bdf8986348e5dc44eea151f64e0f90231a45219c4d0e3d5",
																		"typeString": "literal_string \"log(bool,uint,string,address)\""
																	},
																	"value": "log(bool,uint,string,address)"
																},
																{
																	"id": 7849,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7836,
																	"src": "41126:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7850,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7838,
																	"src": "41130:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 7851,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7840,
																	"src": "41134:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 7852,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7842,
																	"src": "41138:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_a5c70d29969a9ad21bdf8986348e5dc44eea151f64e0f90231a45219c4d0e3d5",
																		"typeString": "literal_string \"log(bool,uint,string,address)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 7846,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "41069:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7847,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "41069:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7853,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "41069:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7845,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "41053:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7854,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "41053:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7855,
												"nodeType": "ExpressionStatement",
												"src": "41053:89:12"
											}
										]
									},
									"id": 7857,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "40983:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7843,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7836,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "40992:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7857,
												"src": "40987:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7835,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "40987:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7838,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "41001:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7857,
												"src": "40996:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7837,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "40996:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7840,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "41019:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7857,
												"src": "41005:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7839,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "41005:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7842,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "41031:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7857,
												"src": "41023:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7841,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "41023:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "40986:48:12"
									},
									"returnParameters": {
										"id": 7844,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "41049:0:12"
									},
									"scope": 10618,
									"src": "40974:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7879,
										"nodeType": "Block",
										"src": "41212:92:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c75696e742c626f6f6c2c75696e7429",
																	"id": 7871,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "41256:26:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_d3de5593988099d08808f80d2a972ea3da18ecd746f0a3e437c530efaad65aa0",
																		"typeString": "literal_string \"log(bool,uint,bool,uint)\""
																	},
																	"value": "log(bool,uint,bool,uint)"
																},
																{
																	"id": 7872,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7859,
																	"src": "41284:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7873,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7861,
																	"src": "41288:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 7874,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7863,
																	"src": "41292:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7875,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7865,
																	"src": "41296:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_d3de5593988099d08808f80d2a972ea3da18ecd746f0a3e437c530efaad65aa0",
																		"typeString": "literal_string \"log(bool,uint,bool,uint)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 7869,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "41232:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7870,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "41232:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7876,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "41232:67:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7868,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "41216:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7877,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "41216:84:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7878,
												"nodeType": "ExpressionStatement",
												"src": "41216:84:12"
											}
										]
									},
									"id": 7880,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "41158:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7866,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7859,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "41167:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7880,
												"src": "41162:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7858,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "41162:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7861,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "41176:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7880,
												"src": "41171:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7860,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "41171:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7863,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "41185:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7880,
												"src": "41180:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7862,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "41180:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7865,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "41194:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7880,
												"src": "41189:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7864,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "41189:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "41161:36:12"
									},
									"returnParameters": {
										"id": 7867,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "41212:0:12"
									},
									"scope": 10618,
									"src": "41149:155:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7902,
										"nodeType": "Block",
										"src": "41379:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c75696e742c626f6f6c2c737472696e6729",
																	"id": 7894,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "41423:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_b6d569d433e69694879a799e3777d59bc29ee89dcbaf739de9b283882fd259ad",
																		"typeString": "literal_string \"log(bool,uint,bool,string)\""
																	},
																	"value": "log(bool,uint,bool,string)"
																},
																{
																	"id": 7895,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7882,
																	"src": "41453:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7896,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7884,
																	"src": "41457:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 7897,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7886,
																	"src": "41461:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7898,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7888,
																	"src": "41465:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_b6d569d433e69694879a799e3777d59bc29ee89dcbaf739de9b283882fd259ad",
																		"typeString": "literal_string \"log(bool,uint,bool,string)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 7892,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "41399:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7893,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "41399:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7899,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "41399:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7891,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "41383:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7900,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "41383:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7901,
												"nodeType": "ExpressionStatement",
												"src": "41383:86:12"
											}
										]
									},
									"id": 7903,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "41316:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7889,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7882,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "41325:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7903,
												"src": "41320:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7881,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "41320:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7884,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "41334:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7903,
												"src": "41329:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7883,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "41329:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7886,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "41343:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7903,
												"src": "41338:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7885,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "41338:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7888,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "41361:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7903,
												"src": "41347:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7887,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "41347:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "41319:45:12"
									},
									"returnParameters": {
										"id": 7890,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "41379:0:12"
									},
									"scope": 10618,
									"src": "41307:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7925,
										"nodeType": "Block",
										"src": "41539:92:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c75696e742c626f6f6c2c626f6f6c29",
																	"id": 7917,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "41583:26:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_9e01f7417c5ff66a2399364b03788fbf8437045d38acf377fab727a3440df7be",
																		"typeString": "literal_string \"log(bool,uint,bool,bool)\""
																	},
																	"value": "log(bool,uint,bool,bool)"
																},
																{
																	"id": 7918,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7905,
																	"src": "41611:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7919,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7907,
																	"src": "41615:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 7920,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7909,
																	"src": "41619:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7921,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7911,
																	"src": "41623:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_9e01f7417c5ff66a2399364b03788fbf8437045d38acf377fab727a3440df7be",
																		"typeString": "literal_string \"log(bool,uint,bool,bool)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 7915,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "41559:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7916,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "41559:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7922,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "41559:67:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7914,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "41543:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7923,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "41543:84:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7924,
												"nodeType": "ExpressionStatement",
												"src": "41543:84:12"
											}
										]
									},
									"id": 7926,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "41485:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7912,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7905,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "41494:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7926,
												"src": "41489:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7904,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "41489:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7907,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "41503:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7926,
												"src": "41498:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7906,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "41498:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7909,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "41512:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7926,
												"src": "41507:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7908,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "41507:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7911,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "41521:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7926,
												"src": "41516:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7910,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "41516:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "41488:36:12"
									},
									"returnParameters": {
										"id": 7913,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "41539:0:12"
									},
									"scope": 10618,
									"src": "41476:155:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7948,
										"nodeType": "Block",
										"src": "41700:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c75696e742c626f6f6c2c6164647265737329",
																	"id": 7940,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "41744:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_4267c7f8f9987b1bc934e31e016f4d182f67ab95e55c5567fbc71b4f01a83f4b",
																		"typeString": "literal_string \"log(bool,uint,bool,address)\""
																	},
																	"value": "log(bool,uint,bool,address)"
																},
																{
																	"id": 7941,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7928,
																	"src": "41775:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7942,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7930,
																	"src": "41779:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 7943,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7932,
																	"src": "41783:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7944,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7934,
																	"src": "41787:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_4267c7f8f9987b1bc934e31e016f4d182f67ab95e55c5567fbc71b4f01a83f4b",
																		"typeString": "literal_string \"log(bool,uint,bool,address)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 7938,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "41720:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7939,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "41720:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7945,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "41720:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7937,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "41704:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7946,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "41704:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7947,
												"nodeType": "ExpressionStatement",
												"src": "41704:87:12"
											}
										]
									},
									"id": 7949,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "41643:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7935,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7928,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "41652:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7949,
												"src": "41647:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7927,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "41647:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7930,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "41661:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7949,
												"src": "41656:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7929,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "41656:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7932,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "41670:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7949,
												"src": "41665:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7931,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "41665:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7934,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "41682:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7949,
												"src": "41674:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7933,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "41674:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "41646:39:12"
									},
									"returnParameters": {
										"id": 7936,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "41700:0:12"
									},
									"scope": 10618,
									"src": "41634:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7971,
										"nodeType": "Block",
										"src": "41864:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c75696e742c616464726573732c75696e7429",
																	"id": 7963,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "41908:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_caa5236acb25f4f5a01ec5f570d99d895d397c7e9fd20ed31c9c33fa8a17f26d",
																		"typeString": "literal_string \"log(bool,uint,address,uint)\""
																	},
																	"value": "log(bool,uint,address,uint)"
																},
																{
																	"id": 7964,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7951,
																	"src": "41939:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7965,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7953,
																	"src": "41943:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 7966,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7955,
																	"src": "41947:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 7967,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7957,
																	"src": "41951:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_caa5236acb25f4f5a01ec5f570d99d895d397c7e9fd20ed31c9c33fa8a17f26d",
																		"typeString": "literal_string \"log(bool,uint,address,uint)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 7961,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "41884:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7962,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "41884:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7968,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "41884:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7960,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "41868:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7969,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "41868:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7970,
												"nodeType": "ExpressionStatement",
												"src": "41868:87:12"
											}
										]
									},
									"id": 7972,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "41807:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7958,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7951,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "41816:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7972,
												"src": "41811:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7950,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "41811:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7953,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "41825:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7972,
												"src": "41820:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7952,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "41820:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7955,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "41837:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7972,
												"src": "41829:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7954,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "41829:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7957,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "41846:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7972,
												"src": "41841:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7956,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "41841:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "41810:39:12"
									},
									"returnParameters": {
										"id": 7959,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "41864:0:12"
									},
									"scope": 10618,
									"src": "41798:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 7994,
										"nodeType": "Block",
										"src": "42037:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c75696e742c616464726573732c737472696e6729",
																	"id": 7986,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "42081:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_180913415ccbde45e0d2184e3dd2387bed86df0066bd73fcb896bc02a6226689",
																		"typeString": "literal_string \"log(bool,uint,address,string)\""
																	},
																	"value": "log(bool,uint,address,string)"
																},
																{
																	"id": 7987,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7974,
																	"src": "42114:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 7988,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7976,
																	"src": "42118:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 7989,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7978,
																	"src": "42122:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 7990,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7980,
																	"src": "42126:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_180913415ccbde45e0d2184e3dd2387bed86df0066bd73fcb896bc02a6226689",
																		"typeString": "literal_string \"log(bool,uint,address,string)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 7984,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "42057:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 7985,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "42057:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 7991,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "42057:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 7983,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "42041:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 7992,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "42041:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 7993,
												"nodeType": "ExpressionStatement",
												"src": "42041:89:12"
											}
										]
									},
									"id": 7995,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "41971:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 7981,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7974,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "41980:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7995,
												"src": "41975:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7973,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "41975:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7976,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "41989:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7995,
												"src": "41984:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7975,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "41984:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7978,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "42001:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7995,
												"src": "41993:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 7977,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "41993:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7980,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "42019:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 7995,
												"src": "42005:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 7979,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "42005:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "41974:48:12"
									},
									"returnParameters": {
										"id": 7982,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "42037:0:12"
									},
									"scope": 10618,
									"src": "41962:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8017,
										"nodeType": "Block",
										"src": "42203:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c75696e742c616464726573732c626f6f6c29",
																	"id": 8009,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "42247:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_65adf4082cd731bd1252f957eddeecdbdcf11e48975b5ac20d902fcb218153fa",
																		"typeString": "literal_string \"log(bool,uint,address,bool)\""
																	},
																	"value": "log(bool,uint,address,bool)"
																},
																{
																	"id": 8010,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7997,
																	"src": "42278:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8011,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7999,
																	"src": "42282:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 8012,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8001,
																	"src": "42286:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 8013,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8003,
																	"src": "42290:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_65adf4082cd731bd1252f957eddeecdbdcf11e48975b5ac20d902fcb218153fa",
																		"typeString": "literal_string \"log(bool,uint,address,bool)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 8007,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "42223:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8008,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "42223:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8014,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "42223:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8006,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "42207:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8015,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "42207:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8016,
												"nodeType": "ExpressionStatement",
												"src": "42207:87:12"
											}
										]
									},
									"id": 8018,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "42146:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8004,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 7997,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "42155:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8018,
												"src": "42150:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 7996,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "42150:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 7999,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "42164:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8018,
												"src": "42159:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 7998,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "42159:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8001,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "42176:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8018,
												"src": "42168:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8000,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "42168:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8003,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "42185:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8018,
												"src": "42180:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8002,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "42180:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "42149:39:12"
									},
									"returnParameters": {
										"id": 8005,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "42203:0:12"
									},
									"scope": 10618,
									"src": "42137:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8040,
										"nodeType": "Block",
										"src": "42370:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c75696e742c616464726573732c6164647265737329",
																	"id": 8032,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "42414:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_8a2f90aa07fc9781ea213028ce9aef0a44d6a31a77e2f4d54d97a0d808348d5d",
																		"typeString": "literal_string \"log(bool,uint,address,address)\""
																	},
																	"value": "log(bool,uint,address,address)"
																},
																{
																	"id": 8033,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8020,
																	"src": "42448:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8034,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8022,
																	"src": "42452:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 8035,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8024,
																	"src": "42456:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 8036,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8026,
																	"src": "42460:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_8a2f90aa07fc9781ea213028ce9aef0a44d6a31a77e2f4d54d97a0d808348d5d",
																		"typeString": "literal_string \"log(bool,uint,address,address)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 8030,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "42390:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8031,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "42390:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8037,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "42390:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8029,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "42374:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8038,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "42374:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8039,
												"nodeType": "ExpressionStatement",
												"src": "42374:90:12"
											}
										]
									},
									"id": 8041,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "42310:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8027,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8020,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "42319:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8041,
												"src": "42314:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8019,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "42314:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8022,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "42328:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8041,
												"src": "42323:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 8021,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "42323:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8024,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "42340:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8041,
												"src": "42332:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8023,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "42332:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8026,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "42352:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8041,
												"src": "42344:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8025,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "42344:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "42313:42:12"
									},
									"returnParameters": {
										"id": 8028,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "42370:0:12"
									},
									"scope": 10618,
									"src": "42301:167:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8063,
										"nodeType": "Block",
										"src": "42543:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c737472696e672c75696e742c75696e7429",
																	"id": 8055,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "42587:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_8e4ae86e71c7c77322d634e39fba7bc2a7e4fbe918bce10fe47326050a13b7c9",
																		"typeString": "literal_string \"log(bool,string,uint,uint)\""
																	},
																	"value": "log(bool,string,uint,uint)"
																},
																{
																	"id": 8056,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8043,
																	"src": "42617:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8057,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8045,
																	"src": "42621:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 8058,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8047,
																	"src": "42625:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 8059,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8049,
																	"src": "42629:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_8e4ae86e71c7c77322d634e39fba7bc2a7e4fbe918bce10fe47326050a13b7c9",
																		"typeString": "literal_string \"log(bool,string,uint,uint)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 8053,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "42563:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8054,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "42563:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8060,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "42563:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8052,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "42547:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8061,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "42547:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8062,
												"nodeType": "ExpressionStatement",
												"src": "42547:86:12"
											}
										]
									},
									"id": 8064,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "42480:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8050,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8043,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "42489:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8064,
												"src": "42484:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8042,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "42484:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8045,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "42507:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8064,
												"src": "42493:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8044,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "42493:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8047,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "42516:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8064,
												"src": "42511:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 8046,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "42511:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8049,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "42525:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8064,
												"src": "42520:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 8048,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "42520:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "42483:45:12"
									},
									"returnParameters": {
										"id": 8051,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "42543:0:12"
									},
									"scope": 10618,
									"src": "42471:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8086,
										"nodeType": "Block",
										"src": "42721:96:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c737472696e672c75696e742c737472696e6729",
																	"id": 8078,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "42765:30:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_77a1abed9f9fbc44023408083dd5c1cf42b0b566799470c6ab535b12d0f8f649",
																		"typeString": "literal_string \"log(bool,string,uint,string)\""
																	},
																	"value": "log(bool,string,uint,string)"
																},
																{
																	"id": 8079,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8066,
																	"src": "42797:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8080,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8068,
																	"src": "42801:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 8081,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8070,
																	"src": "42805:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 8082,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8072,
																	"src": "42809:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_77a1abed9f9fbc44023408083dd5c1cf42b0b566799470c6ab535b12d0f8f649",
																		"typeString": "literal_string \"log(bool,string,uint,string)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 8076,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "42741:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8077,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "42741:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8083,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "42741:71:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8075,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "42725:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8084,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "42725:88:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8085,
												"nodeType": "ExpressionStatement",
												"src": "42725:88:12"
											}
										]
									},
									"id": 8087,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "42649:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8073,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8066,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "42658:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8087,
												"src": "42653:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8065,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "42653:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8068,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "42676:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8087,
												"src": "42662:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8067,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "42662:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8070,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "42685:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8087,
												"src": "42680:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 8069,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "42680:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8072,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "42703:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8087,
												"src": "42689:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8071,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "42689:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "42652:54:12"
									},
									"returnParameters": {
										"id": 8074,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "42721:0:12"
									},
									"scope": 10618,
									"src": "42640:177:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8109,
										"nodeType": "Block",
										"src": "42892:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c737472696e672c75696e742c626f6f6c29",
																	"id": 8101,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "42936:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_20bbc9af7c6bae926ffd73678c9130310d497610a5c76e6e2ae48edff96f38a8",
																		"typeString": "literal_string \"log(bool,string,uint,bool)\""
																	},
																	"value": "log(bool,string,uint,bool)"
																},
																{
																	"id": 8102,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8089,
																	"src": "42966:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8103,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8091,
																	"src": "42970:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 8104,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8093,
																	"src": "42974:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 8105,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8095,
																	"src": "42978:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_20bbc9af7c6bae926ffd73678c9130310d497610a5c76e6e2ae48edff96f38a8",
																		"typeString": "literal_string \"log(bool,string,uint,bool)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 8099,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "42912:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8100,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "42912:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8106,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "42912:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8098,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "42896:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8107,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "42896:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8108,
												"nodeType": "ExpressionStatement",
												"src": "42896:86:12"
											}
										]
									},
									"id": 8110,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "42829:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8096,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8089,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "42838:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8110,
												"src": "42833:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8088,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "42833:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8091,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "42856:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8110,
												"src": "42842:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8090,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "42842:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8093,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "42865:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8110,
												"src": "42860:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 8092,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "42860:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8095,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "42874:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8110,
												"src": "42869:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8094,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "42869:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "42832:45:12"
									},
									"returnParameters": {
										"id": 8097,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "42892:0:12"
									},
									"scope": 10618,
									"src": "42820:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8132,
										"nodeType": "Block",
										"src": "43064:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c737472696e672c75696e742c6164647265737329",
																	"id": 8124,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "43108:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_5b22b938264abfc98de8ea025ac5bd87df03cbffd23b96cdfe194e0ef6fb136a",
																		"typeString": "literal_string \"log(bool,string,uint,address)\""
																	},
																	"value": "log(bool,string,uint,address)"
																},
																{
																	"id": 8125,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8112,
																	"src": "43141:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8126,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8114,
																	"src": "43145:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 8127,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8116,
																	"src": "43149:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 8128,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8118,
																	"src": "43153:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_5b22b938264abfc98de8ea025ac5bd87df03cbffd23b96cdfe194e0ef6fb136a",
																		"typeString": "literal_string \"log(bool,string,uint,address)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 8122,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "43084:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8123,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "43084:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8129,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "43084:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8121,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "43068:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8130,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "43068:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8131,
												"nodeType": "ExpressionStatement",
												"src": "43068:89:12"
											}
										]
									},
									"id": 8133,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "42998:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8119,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8112,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "43007:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8133,
												"src": "43002:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8111,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "43002:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8114,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "43025:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8133,
												"src": "43011:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8113,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "43011:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8116,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "43034:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8133,
												"src": "43029:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 8115,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "43029:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8118,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "43046:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8133,
												"src": "43038:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8117,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "43038:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "43001:48:12"
									},
									"returnParameters": {
										"id": 8120,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "43064:0:12"
									},
									"scope": 10618,
									"src": "42989:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8155,
										"nodeType": "Block",
										"src": "43245:96:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c737472696e672c737472696e672c75696e7429",
																	"id": 8147,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "43289:30:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_5ddb259214a75c0fc75757e8e19b1cf1c4ec17a5eef635b4715f04b86884d5df",
																		"typeString": "literal_string \"log(bool,string,string,uint)\""
																	},
																	"value": "log(bool,string,string,uint)"
																},
																{
																	"id": 8148,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8135,
																	"src": "43321:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8149,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8137,
																	"src": "43325:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 8150,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8139,
																	"src": "43329:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 8151,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8141,
																	"src": "43333:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_5ddb259214a75c0fc75757e8e19b1cf1c4ec17a5eef635b4715f04b86884d5df",
																		"typeString": "literal_string \"log(bool,string,string,uint)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 8145,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "43265:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8146,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "43265:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8152,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "43265:71:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8144,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "43249:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8153,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "43249:88:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8154,
												"nodeType": "ExpressionStatement",
												"src": "43249:88:12"
											}
										]
									},
									"id": 8156,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "43173:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8142,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8135,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "43182:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8156,
												"src": "43177:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8134,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "43177:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8137,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "43200:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8156,
												"src": "43186:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8136,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "43186:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8139,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "43218:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8156,
												"src": "43204:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8138,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "43204:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8141,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "43227:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8156,
												"src": "43222:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 8140,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "43222:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "43176:54:12"
									},
									"returnParameters": {
										"id": 8143,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "43245:0:12"
									},
									"scope": 10618,
									"src": "43164:177:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8178,
										"nodeType": "Block",
										"src": "43434:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c737472696e672c737472696e672c737472696e6729",
																	"id": 8170,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "43478:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_1762e32af9fa924f818d8f4a6c92011d30129df73749081e0b95feea819a17c9",
																		"typeString": "literal_string \"log(bool,string,string,string)\""
																	},
																	"value": "log(bool,string,string,string)"
																},
																{
																	"id": 8171,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8158,
																	"src": "43512:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8172,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8160,
																	"src": "43516:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 8173,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8162,
																	"src": "43520:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 8174,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8164,
																	"src": "43524:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_1762e32af9fa924f818d8f4a6c92011d30129df73749081e0b95feea819a17c9",
																		"typeString": "literal_string \"log(bool,string,string,string)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 8168,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "43454:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8169,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "43454:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8175,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "43454:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8167,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "43438:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8176,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "43438:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8177,
												"nodeType": "ExpressionStatement",
												"src": "43438:90:12"
											}
										]
									},
									"id": 8179,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "43353:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8165,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8158,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "43362:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8179,
												"src": "43357:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8157,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "43357:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8160,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "43380:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8179,
												"src": "43366:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8159,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "43366:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8162,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "43398:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8179,
												"src": "43384:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8161,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "43384:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8164,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "43416:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8179,
												"src": "43402:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8163,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "43402:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "43356:63:12"
									},
									"returnParameters": {
										"id": 8166,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "43434:0:12"
									},
									"scope": 10618,
									"src": "43344:188:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8201,
										"nodeType": "Block",
										"src": "43616:96:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c737472696e672c737472696e672c626f6f6c29",
																	"id": 8193,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "43660:30:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_1e4b87e52d13efc5b368defba0463e423637ec55125c6230945d005f817198d1",
																		"typeString": "literal_string \"log(bool,string,string,bool)\""
																	},
																	"value": "log(bool,string,string,bool)"
																},
																{
																	"id": 8194,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8181,
																	"src": "43692:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8195,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8183,
																	"src": "43696:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 8196,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8185,
																	"src": "43700:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 8197,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8187,
																	"src": "43704:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_1e4b87e52d13efc5b368defba0463e423637ec55125c6230945d005f817198d1",
																		"typeString": "literal_string \"log(bool,string,string,bool)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 8191,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "43636:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8192,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "43636:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8198,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "43636:71:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8190,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "43620:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8199,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "43620:88:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8200,
												"nodeType": "ExpressionStatement",
												"src": "43620:88:12"
											}
										]
									},
									"id": 8202,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "43544:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8188,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8181,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "43553:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8202,
												"src": "43548:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8180,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "43548:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8183,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "43571:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8202,
												"src": "43557:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8182,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "43557:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8185,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "43589:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8202,
												"src": "43575:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8184,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "43575:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8187,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "43598:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8202,
												"src": "43593:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8186,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "43593:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "43547:54:12"
									},
									"returnParameters": {
										"id": 8189,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "43616:0:12"
									},
									"scope": 10618,
									"src": "43535:177:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8224,
										"nodeType": "Block",
										"src": "43799:99:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c737472696e672c737472696e672c6164647265737329",
																	"id": 8216,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "43843:33:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_97d394d89551bd441d1340d1c3dcc3b6160871bf042c6884bcb4049b2fa2bdb5",
																		"typeString": "literal_string \"log(bool,string,string,address)\""
																	},
																	"value": "log(bool,string,string,address)"
																},
																{
																	"id": 8217,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8204,
																	"src": "43878:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8218,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8206,
																	"src": "43882:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 8219,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8208,
																	"src": "43886:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 8220,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8210,
																	"src": "43890:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_97d394d89551bd441d1340d1c3dcc3b6160871bf042c6884bcb4049b2fa2bdb5",
																		"typeString": "literal_string \"log(bool,string,string,address)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 8214,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "43819:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8215,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "43819:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8221,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "43819:74:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8213,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "43803:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8222,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "43803:91:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8223,
												"nodeType": "ExpressionStatement",
												"src": "43803:91:12"
											}
										]
									},
									"id": 8225,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "43724:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8211,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8204,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "43733:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8225,
												"src": "43728:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8203,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "43728:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8206,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "43751:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8225,
												"src": "43737:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8205,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "43737:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8208,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "43769:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8225,
												"src": "43755:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8207,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "43755:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8210,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "43781:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8225,
												"src": "43773:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8209,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "43773:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "43727:57:12"
									},
									"returnParameters": {
										"id": 8212,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "43799:0:12"
									},
									"scope": 10618,
									"src": "43715:183:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8247,
										"nodeType": "Block",
										"src": "43973:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c737472696e672c626f6f6c2c75696e7429",
																	"id": 8239,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "44017:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_8d6f9ca539d16169f184b68d5f2cbc34ada538d6737083559aa5a96068582055",
																		"typeString": "literal_string \"log(bool,string,bool,uint)\""
																	},
																	"value": "log(bool,string,bool,uint)"
																},
																{
																	"id": 8240,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8227,
																	"src": "44047:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8241,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8229,
																	"src": "44051:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 8242,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8231,
																	"src": "44055:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8243,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8233,
																	"src": "44059:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_8d6f9ca539d16169f184b68d5f2cbc34ada538d6737083559aa5a96068582055",
																		"typeString": "literal_string \"log(bool,string,bool,uint)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 8237,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "43993:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8238,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "43993:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8244,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "43993:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8236,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "43977:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8245,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "43977:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8246,
												"nodeType": "ExpressionStatement",
												"src": "43977:86:12"
											}
										]
									},
									"id": 8248,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "43910:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8234,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8227,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "43919:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8248,
												"src": "43914:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8226,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "43914:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8229,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "43937:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8248,
												"src": "43923:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8228,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "43923:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8231,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "43946:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8248,
												"src": "43941:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8230,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "43941:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8233,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "43955:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8248,
												"src": "43950:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 8232,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "43950:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "43913:45:12"
									},
									"returnParameters": {
										"id": 8235,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "43973:0:12"
									},
									"scope": 10618,
									"src": "43901:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8270,
										"nodeType": "Block",
										"src": "44151:96:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c737472696e672c626f6f6c2c737472696e6729",
																	"id": 8262,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "44195:30:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_483d0416329d0c81c68975a0cac822497c590c00f8ae8be66af490d0f9215468",
																		"typeString": "literal_string \"log(bool,string,bool,string)\""
																	},
																	"value": "log(bool,string,bool,string)"
																},
																{
																	"id": 8263,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8250,
																	"src": "44227:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8264,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8252,
																	"src": "44231:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 8265,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8254,
																	"src": "44235:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8266,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8256,
																	"src": "44239:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_483d0416329d0c81c68975a0cac822497c590c00f8ae8be66af490d0f9215468",
																		"typeString": "literal_string \"log(bool,string,bool,string)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 8260,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "44171:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8261,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "44171:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8267,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "44171:71:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8259,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "44155:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8268,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "44155:88:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8269,
												"nodeType": "ExpressionStatement",
												"src": "44155:88:12"
											}
										]
									},
									"id": 8271,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "44079:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8257,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8250,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "44088:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8271,
												"src": "44083:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8249,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "44083:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8252,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "44106:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8271,
												"src": "44092:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8251,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "44092:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8254,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "44115:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8271,
												"src": "44110:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8253,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "44110:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8256,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "44133:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8271,
												"src": "44119:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8255,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "44119:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "44082:54:12"
									},
									"returnParameters": {
										"id": 8258,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "44151:0:12"
									},
									"scope": 10618,
									"src": "44070:177:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8293,
										"nodeType": "Block",
										"src": "44322:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c737472696e672c626f6f6c2c626f6f6c29",
																	"id": 8285,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "44366:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_dc5e935b9ccf45ff13b5900aeaf3a593df3e9479fc07e9c213f5fcaa0951e91f",
																		"typeString": "literal_string \"log(bool,string,bool,bool)\""
																	},
																	"value": "log(bool,string,bool,bool)"
																},
																{
																	"id": 8286,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8273,
																	"src": "44396:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8287,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8275,
																	"src": "44400:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 8288,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8277,
																	"src": "44404:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8289,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8279,
																	"src": "44408:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_dc5e935b9ccf45ff13b5900aeaf3a593df3e9479fc07e9c213f5fcaa0951e91f",
																		"typeString": "literal_string \"log(bool,string,bool,bool)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 8283,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "44342:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8284,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "44342:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8290,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "44342:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8282,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "44326:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8291,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "44326:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8292,
												"nodeType": "ExpressionStatement",
												"src": "44326:86:12"
											}
										]
									},
									"id": 8294,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "44259:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8280,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8273,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "44268:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8294,
												"src": "44263:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8272,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "44263:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8275,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "44286:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8294,
												"src": "44272:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8274,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "44272:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8277,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "44295:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8294,
												"src": "44290:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8276,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "44290:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8279,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "44304:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8294,
												"src": "44299:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8278,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "44299:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "44262:45:12"
									},
									"returnParameters": {
										"id": 8281,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "44322:0:12"
									},
									"scope": 10618,
									"src": "44250:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8316,
										"nodeType": "Block",
										"src": "44494:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c737472696e672c626f6f6c2c6164647265737329",
																	"id": 8308,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "44538:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_538e06ab06366b189ea53da7c11628ee5730bc373b0bc64719bea1a2afab03c5",
																		"typeString": "literal_string \"log(bool,string,bool,address)\""
																	},
																	"value": "log(bool,string,bool,address)"
																},
																{
																	"id": 8309,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8296,
																	"src": "44571:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8310,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8298,
																	"src": "44575:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 8311,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8300,
																	"src": "44579:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8312,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8302,
																	"src": "44583:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_538e06ab06366b189ea53da7c11628ee5730bc373b0bc64719bea1a2afab03c5",
																		"typeString": "literal_string \"log(bool,string,bool,address)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 8306,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "44514:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8307,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "44514:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8313,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "44514:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8305,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "44498:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8314,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "44498:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8315,
												"nodeType": "ExpressionStatement",
												"src": "44498:89:12"
											}
										]
									},
									"id": 8317,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "44428:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8303,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8296,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "44437:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8317,
												"src": "44432:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8295,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "44432:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8298,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "44455:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8317,
												"src": "44441:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8297,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "44441:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8300,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "44464:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8317,
												"src": "44459:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8299,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "44459:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8302,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "44476:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8317,
												"src": "44468:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8301,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "44468:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "44431:48:12"
									},
									"returnParameters": {
										"id": 8304,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "44494:0:12"
									},
									"scope": 10618,
									"src": "44419:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8339,
										"nodeType": "Block",
										"src": "44669:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c737472696e672c616464726573732c75696e7429",
																	"id": 8331,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "44713:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_1b0b955b558cd224468bb20ba92b23519cb59fe363a105b00d7a815c1673c4ca",
																		"typeString": "literal_string \"log(bool,string,address,uint)\""
																	},
																	"value": "log(bool,string,address,uint)"
																},
																{
																	"id": 8332,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8319,
																	"src": "44746:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8333,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8321,
																	"src": "44750:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 8334,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8323,
																	"src": "44754:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 8335,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8325,
																	"src": "44758:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_1b0b955b558cd224468bb20ba92b23519cb59fe363a105b00d7a815c1673c4ca",
																		"typeString": "literal_string \"log(bool,string,address,uint)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 8329,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "44689:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8330,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "44689:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8336,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "44689:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8328,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "44673:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8337,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "44673:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8338,
												"nodeType": "ExpressionStatement",
												"src": "44673:89:12"
											}
										]
									},
									"id": 8340,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "44603:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8326,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8319,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "44612:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8340,
												"src": "44607:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8318,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "44607:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8321,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "44630:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8340,
												"src": "44616:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8320,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "44616:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8323,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "44642:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8340,
												"src": "44634:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8322,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "44634:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8325,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "44651:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8340,
												"src": "44646:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 8324,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "44646:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "44606:48:12"
									},
									"returnParameters": {
										"id": 8327,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "44669:0:12"
									},
									"scope": 10618,
									"src": "44594:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8362,
										"nodeType": "Block",
										"src": "44853:99:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c737472696e672c616464726573732c737472696e6729",
																	"id": 8354,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "44897:33:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_12d6c788fea4d6144f2607e1e8821bec55a5c2dfdc4cece41a536f7b7831e7a7",
																		"typeString": "literal_string \"log(bool,string,address,string)\""
																	},
																	"value": "log(bool,string,address,string)"
																},
																{
																	"id": 8355,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8342,
																	"src": "44932:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8356,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8344,
																	"src": "44936:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 8357,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8346,
																	"src": "44940:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 8358,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8348,
																	"src": "44944:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_12d6c788fea4d6144f2607e1e8821bec55a5c2dfdc4cece41a536f7b7831e7a7",
																		"typeString": "literal_string \"log(bool,string,address,string)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 8352,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "44873:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8353,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "44873:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8359,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "44873:74:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8351,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "44857:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8360,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "44857:91:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8361,
												"nodeType": "ExpressionStatement",
												"src": "44857:91:12"
											}
										]
									},
									"id": 8363,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "44778:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8349,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8342,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "44787:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8363,
												"src": "44782:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8341,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "44782:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8344,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "44805:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8363,
												"src": "44791:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8343,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "44791:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8346,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "44817:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8363,
												"src": "44809:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8345,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "44809:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8348,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "44835:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8363,
												"src": "44821:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8347,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "44821:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "44781:57:12"
									},
									"returnParameters": {
										"id": 8350,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "44853:0:12"
									},
									"scope": 10618,
									"src": "44769:183:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8385,
										"nodeType": "Block",
										"src": "45030:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c737472696e672c616464726573732c626f6f6c29",
																	"id": 8377,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "45074:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_6dd434ca1fa26d491bcd72b7fe69eb72d41cae8eadbda5a7f985734e1b80c67d",
																		"typeString": "literal_string \"log(bool,string,address,bool)\""
																	},
																	"value": "log(bool,string,address,bool)"
																},
																{
																	"id": 8378,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8365,
																	"src": "45107:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8379,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8367,
																	"src": "45111:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 8380,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8369,
																	"src": "45115:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 8381,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8371,
																	"src": "45119:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_6dd434ca1fa26d491bcd72b7fe69eb72d41cae8eadbda5a7f985734e1b80c67d",
																		"typeString": "literal_string \"log(bool,string,address,bool)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 8375,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "45050:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8376,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "45050:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8382,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "45050:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8374,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "45034:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8383,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "45034:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8384,
												"nodeType": "ExpressionStatement",
												"src": "45034:89:12"
											}
										]
									},
									"id": 8386,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "44964:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8372,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8365,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "44973:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8386,
												"src": "44968:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8364,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "44968:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8367,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "44991:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8386,
												"src": "44977:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8366,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "44977:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8369,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "45003:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8386,
												"src": "44995:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8368,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "44995:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8371,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "45012:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8386,
												"src": "45007:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8370,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "45007:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "44967:48:12"
									},
									"returnParameters": {
										"id": 8373,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "45030:0:12"
									},
									"scope": 10618,
									"src": "44955:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8408,
										"nodeType": "Block",
										"src": "45208:100:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c737472696e672c616464726573732c6164647265737329",
																	"id": 8400,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "45252:34:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_2b2b18dc50ecc75180f201de41eca533fbda0c7bf525c06b5b8e87bc1d010822",
																		"typeString": "literal_string \"log(bool,string,address,address)\""
																	},
																	"value": "log(bool,string,address,address)"
																},
																{
																	"id": 8401,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8388,
																	"src": "45288:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8402,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8390,
																	"src": "45292:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 8403,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8392,
																	"src": "45296:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 8404,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8394,
																	"src": "45300:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_2b2b18dc50ecc75180f201de41eca533fbda0c7bf525c06b5b8e87bc1d010822",
																		"typeString": "literal_string \"log(bool,string,address,address)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 8398,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "45228:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8399,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "45228:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8405,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "45228:75:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8397,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "45212:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8406,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "45212:92:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8407,
												"nodeType": "ExpressionStatement",
												"src": "45212:92:12"
											}
										]
									},
									"id": 8409,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "45139:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8395,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8388,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "45148:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8409,
												"src": "45143:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8387,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "45143:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8390,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "45166:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8409,
												"src": "45152:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8389,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "45152:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8392,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "45178:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8409,
												"src": "45170:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8391,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "45170:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8394,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "45190:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8409,
												"src": "45182:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8393,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "45182:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "45142:51:12"
									},
									"returnParameters": {
										"id": 8396,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "45208:0:12"
									},
									"scope": 10618,
									"src": "45130:178:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8431,
										"nodeType": "Block",
										"src": "45374:92:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c626f6f6c2c75696e742c75696e7429",
																	"id": 8423,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "45418:26:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_4667de8ece32e91ade336fb6d8a14a500512d40e1162a34636a5bca908b16e6a",
																		"typeString": "literal_string \"log(bool,bool,uint,uint)\""
																	},
																	"value": "log(bool,bool,uint,uint)"
																},
																{
																	"id": 8424,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8411,
																	"src": "45446:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8425,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8413,
																	"src": "45450:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8426,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8415,
																	"src": "45454:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 8427,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8417,
																	"src": "45458:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_4667de8ece32e91ade336fb6d8a14a500512d40e1162a34636a5bca908b16e6a",
																		"typeString": "literal_string \"log(bool,bool,uint,uint)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 8421,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "45394:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8422,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "45394:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8428,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "45394:67:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8420,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "45378:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8429,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "45378:84:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8430,
												"nodeType": "ExpressionStatement",
												"src": "45378:84:12"
											}
										]
									},
									"id": 8432,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "45320:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8418,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8411,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "45329:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8432,
												"src": "45324:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8410,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "45324:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8413,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "45338:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8432,
												"src": "45333:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8412,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "45333:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8415,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "45347:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8432,
												"src": "45342:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 8414,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "45342:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8417,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "45356:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8432,
												"src": "45351:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 8416,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "45351:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "45323:36:12"
									},
									"returnParameters": {
										"id": 8419,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "45374:0:12"
									},
									"scope": 10618,
									"src": "45311:155:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8454,
										"nodeType": "Block",
										"src": "45541:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c626f6f6c2c75696e742c737472696e6729",
																	"id": 8446,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "45585:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_50618937639b3b1cb3bbe247efb1fae4eb9a85d1e66ac66dfc77c62561966adc",
																		"typeString": "literal_string \"log(bool,bool,uint,string)\""
																	},
																	"value": "log(bool,bool,uint,string)"
																},
																{
																	"id": 8447,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8434,
																	"src": "45615:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8448,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8436,
																	"src": "45619:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8449,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8438,
																	"src": "45623:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 8450,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8440,
																	"src": "45627:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_50618937639b3b1cb3bbe247efb1fae4eb9a85d1e66ac66dfc77c62561966adc",
																		"typeString": "literal_string \"log(bool,bool,uint,string)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 8444,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "45561:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8445,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "45561:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8451,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "45561:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8443,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "45545:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8452,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "45545:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8453,
												"nodeType": "ExpressionStatement",
												"src": "45545:86:12"
											}
										]
									},
									"id": 8455,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "45478:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8441,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8434,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "45487:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8455,
												"src": "45482:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8433,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "45482:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8436,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "45496:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8455,
												"src": "45491:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8435,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "45491:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8438,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "45505:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8455,
												"src": "45500:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 8437,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "45500:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8440,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "45523:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8455,
												"src": "45509:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8439,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "45509:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "45481:45:12"
									},
									"returnParameters": {
										"id": 8442,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "45541:0:12"
									},
									"scope": 10618,
									"src": "45469:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8477,
										"nodeType": "Block",
										"src": "45701:92:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c626f6f6c2c75696e742c626f6f6c29",
																	"id": 8469,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "45745:26:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_ab5cc1c47d926d79461c86216768f32b6ec0ac12d51c1eb543ea3bd1cfec0110",
																		"typeString": "literal_string \"log(bool,bool,uint,bool)\""
																	},
																	"value": "log(bool,bool,uint,bool)"
																},
																{
																	"id": 8470,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8457,
																	"src": "45773:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8471,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8459,
																	"src": "45777:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8472,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8461,
																	"src": "45781:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 8473,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8463,
																	"src": "45785:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_ab5cc1c47d926d79461c86216768f32b6ec0ac12d51c1eb543ea3bd1cfec0110",
																		"typeString": "literal_string \"log(bool,bool,uint,bool)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 8467,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "45721:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8468,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "45721:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8474,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "45721:67:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8466,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "45705:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8475,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "45705:84:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8476,
												"nodeType": "ExpressionStatement",
												"src": "45705:84:12"
											}
										]
									},
									"id": 8478,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "45647:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8464,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8457,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "45656:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8478,
												"src": "45651:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8456,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "45651:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8459,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "45665:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8478,
												"src": "45660:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8458,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "45660:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8461,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "45674:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8478,
												"src": "45669:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 8460,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "45669:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8463,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "45683:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8478,
												"src": "45678:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8462,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "45678:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "45650:36:12"
									},
									"returnParameters": {
										"id": 8465,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "45701:0:12"
									},
									"scope": 10618,
									"src": "45638:155:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8500,
										"nodeType": "Block",
										"src": "45862:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c626f6f6c2c75696e742c6164647265737329",
																	"id": 8492,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "45906:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_0bff950dc175e3e278946e4adb75fffc4ee67cda33555121dd293b95b27a39a7",
																		"typeString": "literal_string \"log(bool,bool,uint,address)\""
																	},
																	"value": "log(bool,bool,uint,address)"
																},
																{
																	"id": 8493,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8480,
																	"src": "45937:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8494,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8482,
																	"src": "45941:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8495,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8484,
																	"src": "45945:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 8496,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8486,
																	"src": "45949:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_0bff950dc175e3e278946e4adb75fffc4ee67cda33555121dd293b95b27a39a7",
																		"typeString": "literal_string \"log(bool,bool,uint,address)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 8490,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "45882:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8491,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "45882:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8497,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "45882:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8489,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "45866:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8498,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "45866:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8499,
												"nodeType": "ExpressionStatement",
												"src": "45866:87:12"
											}
										]
									},
									"id": 8501,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "45805:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8487,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8480,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "45814:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8501,
												"src": "45809:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8479,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "45809:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8482,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "45823:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8501,
												"src": "45818:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8481,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "45818:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8484,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "45832:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8501,
												"src": "45827:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 8483,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "45827:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8486,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "45844:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8501,
												"src": "45836:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8485,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "45836:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "45808:39:12"
									},
									"returnParameters": {
										"id": 8488,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "45862:0:12"
									},
									"scope": 10618,
									"src": "45796:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8523,
										"nodeType": "Block",
										"src": "46032:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c626f6f6c2c737472696e672c75696e7429",
																	"id": 8515,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "46076:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_178b4685db1dff62c4ee472c2e6bf50abba0dc230768235e43c6259152d1244e",
																		"typeString": "literal_string \"log(bool,bool,string,uint)\""
																	},
																	"value": "log(bool,bool,string,uint)"
																},
																{
																	"id": 8516,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8503,
																	"src": "46106:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8517,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8505,
																	"src": "46110:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8518,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8507,
																	"src": "46114:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 8519,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8509,
																	"src": "46118:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_178b4685db1dff62c4ee472c2e6bf50abba0dc230768235e43c6259152d1244e",
																		"typeString": "literal_string \"log(bool,bool,string,uint)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 8513,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "46052:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8514,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "46052:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8520,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "46052:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8512,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "46036:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8521,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "46036:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8522,
												"nodeType": "ExpressionStatement",
												"src": "46036:86:12"
											}
										]
									},
									"id": 8524,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "45969:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8510,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8503,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "45978:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8524,
												"src": "45973:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8502,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "45973:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8505,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "45987:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8524,
												"src": "45982:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8504,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "45982:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8507,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "46005:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8524,
												"src": "45991:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8506,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "45991:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8509,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "46014:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8524,
												"src": "46009:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 8508,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "46009:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "45972:45:12"
									},
									"returnParameters": {
										"id": 8511,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "46032:0:12"
									},
									"scope": 10618,
									"src": "45960:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8546,
										"nodeType": "Block",
										"src": "46210:96:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c626f6f6c2c737472696e672c737472696e6729",
																	"id": 8538,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "46254:30:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_6d1e87518c98344bc3efd52648f61de340bda51607aec409d641f3467caafaaf",
																		"typeString": "literal_string \"log(bool,bool,string,string)\""
																	},
																	"value": "log(bool,bool,string,string)"
																},
																{
																	"id": 8539,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8526,
																	"src": "46286:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8540,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8528,
																	"src": "46290:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8541,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8530,
																	"src": "46294:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 8542,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8532,
																	"src": "46298:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_6d1e87518c98344bc3efd52648f61de340bda51607aec409d641f3467caafaaf",
																		"typeString": "literal_string \"log(bool,bool,string,string)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 8536,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "46230:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8537,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "46230:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8543,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "46230:71:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8535,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "46214:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8544,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "46214:88:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8545,
												"nodeType": "ExpressionStatement",
												"src": "46214:88:12"
											}
										]
									},
									"id": 8547,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "46138:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8533,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8526,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "46147:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8547,
												"src": "46142:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8525,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "46142:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8528,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "46156:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8547,
												"src": "46151:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8527,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "46151:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8530,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "46174:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8547,
												"src": "46160:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8529,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "46160:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8532,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "46192:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8547,
												"src": "46178:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8531,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "46178:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "46141:54:12"
									},
									"returnParameters": {
										"id": 8534,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "46210:0:12"
									},
									"scope": 10618,
									"src": "46129:177:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8569,
										"nodeType": "Block",
										"src": "46381:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c626f6f6c2c737472696e672c626f6f6c29",
																	"id": 8561,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "46425:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_b857163a2b7b8273ed53cefa410aa148f1833bdfc22da11e1e2fb89c6e625d02",
																		"typeString": "literal_string \"log(bool,bool,string,bool)\""
																	},
																	"value": "log(bool,bool,string,bool)"
																},
																{
																	"id": 8562,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8549,
																	"src": "46455:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8563,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8551,
																	"src": "46459:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8564,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8553,
																	"src": "46463:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 8565,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8555,
																	"src": "46467:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_b857163a2b7b8273ed53cefa410aa148f1833bdfc22da11e1e2fb89c6e625d02",
																		"typeString": "literal_string \"log(bool,bool,string,bool)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 8559,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "46401:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8560,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "46401:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8566,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "46401:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8558,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "46385:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8567,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "46385:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8568,
												"nodeType": "ExpressionStatement",
												"src": "46385:86:12"
											}
										]
									},
									"id": 8570,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "46318:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8556,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8549,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "46327:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8570,
												"src": "46322:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8548,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "46322:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8551,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "46336:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8570,
												"src": "46331:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8550,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "46331:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8553,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "46354:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8570,
												"src": "46340:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8552,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "46340:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8555,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "46363:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8570,
												"src": "46358:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8554,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "46358:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "46321:45:12"
									},
									"returnParameters": {
										"id": 8557,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "46381:0:12"
									},
									"scope": 10618,
									"src": "46309:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8592,
										"nodeType": "Block",
										"src": "46553:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c626f6f6c2c737472696e672c6164647265737329",
																	"id": 8584,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "46597:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_f9ad2b893873fa31c02b102aa30743b2e44c102daa588ea9d1eb1f2baf23d202",
																		"typeString": "literal_string \"log(bool,bool,string,address)\""
																	},
																	"value": "log(bool,bool,string,address)"
																},
																{
																	"id": 8585,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8572,
																	"src": "46630:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8586,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8574,
																	"src": "46634:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8587,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8576,
																	"src": "46638:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 8588,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8578,
																	"src": "46642:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_f9ad2b893873fa31c02b102aa30743b2e44c102daa588ea9d1eb1f2baf23d202",
																		"typeString": "literal_string \"log(bool,bool,string,address)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 8582,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "46573:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8583,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "46573:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8589,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "46573:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8581,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "46557:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8590,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "46557:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8591,
												"nodeType": "ExpressionStatement",
												"src": "46557:89:12"
											}
										]
									},
									"id": 8593,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "46487:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8579,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8572,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "46496:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8593,
												"src": "46491:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8571,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "46491:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8574,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "46505:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8593,
												"src": "46500:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8573,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "46500:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8576,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "46523:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8593,
												"src": "46509:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8575,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "46509:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8578,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "46535:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8593,
												"src": "46527:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8577,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "46527:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "46490:48:12"
									},
									"returnParameters": {
										"id": 8580,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "46553:0:12"
									},
									"scope": 10618,
									"src": "46478:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8615,
										"nodeType": "Block",
										"src": "46716:92:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c75696e7429",
																	"id": 8607,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "46760:26:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_c248834dff84ca4bcbda9cf249a0d5da3bd0a58b4562085082654d4d9851b501",
																		"typeString": "literal_string \"log(bool,bool,bool,uint)\""
																	},
																	"value": "log(bool,bool,bool,uint)"
																},
																{
																	"id": 8608,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8595,
																	"src": "46788:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8609,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8597,
																	"src": "46792:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8610,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8599,
																	"src": "46796:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8611,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8601,
																	"src": "46800:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_c248834dff84ca4bcbda9cf249a0d5da3bd0a58b4562085082654d4d9851b501",
																		"typeString": "literal_string \"log(bool,bool,bool,uint)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 8605,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "46736:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8606,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "46736:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8612,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "46736:67:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8604,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "46720:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8613,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "46720:84:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8614,
												"nodeType": "ExpressionStatement",
												"src": "46720:84:12"
											}
										]
									},
									"id": 8616,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "46662:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8602,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8595,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "46671:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8616,
												"src": "46666:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8594,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "46666:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8597,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "46680:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8616,
												"src": "46675:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8596,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "46675:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8599,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "46689:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8616,
												"src": "46684:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8598,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "46684:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8601,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "46698:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8616,
												"src": "46693:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 8600,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "46693:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "46665:36:12"
									},
									"returnParameters": {
										"id": 8603,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "46716:0:12"
									},
									"scope": 10618,
									"src": "46653:155:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8638,
										"nodeType": "Block",
										"src": "46883:94:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c737472696e6729",
																	"id": 8630,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "46927:28:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_2ae408d4d030305a0361ad07c397f2b9653613b220d82459c7aeb9a6bab96c15",
																		"typeString": "literal_string \"log(bool,bool,bool,string)\""
																	},
																	"value": "log(bool,bool,bool,string)"
																},
																{
																	"id": 8631,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8618,
																	"src": "46957:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8632,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8620,
																	"src": "46961:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8633,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8622,
																	"src": "46965:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8634,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8624,
																	"src": "46969:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_2ae408d4d030305a0361ad07c397f2b9653613b220d82459c7aeb9a6bab96c15",
																		"typeString": "literal_string \"log(bool,bool,bool,string)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 8628,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "46903:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8629,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "46903:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8635,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "46903:69:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8627,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "46887:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8636,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "46887:86:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8637,
												"nodeType": "ExpressionStatement",
												"src": "46887:86:12"
											}
										]
									},
									"id": 8639,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "46820:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8625,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8618,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "46829:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8639,
												"src": "46824:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8617,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "46824:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8620,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "46838:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8639,
												"src": "46833:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8619,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "46833:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8622,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "46847:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8639,
												"src": "46842:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8621,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "46842:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8624,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "46865:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8639,
												"src": "46851:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8623,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "46851:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "46823:45:12"
									},
									"returnParameters": {
										"id": 8626,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "46883:0:12"
									},
									"scope": 10618,
									"src": "46811:166:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8661,
										"nodeType": "Block",
										"src": "47043:92:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c626f6f6c29",
																	"id": 8653,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "47087:26:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_3b2a5ce0ddf7b166153a4354c81efba12a817983a38c6bc3b58fd91ce816d99f",
																		"typeString": "literal_string \"log(bool,bool,bool,bool)\""
																	},
																	"value": "log(bool,bool,bool,bool)"
																},
																{
																	"id": 8654,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8641,
																	"src": "47115:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8655,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8643,
																	"src": "47119:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8656,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8645,
																	"src": "47123:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8657,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8647,
																	"src": "47127:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_3b2a5ce0ddf7b166153a4354c81efba12a817983a38c6bc3b58fd91ce816d99f",
																		"typeString": "literal_string \"log(bool,bool,bool,bool)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 8651,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "47063:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8652,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "47063:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8658,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "47063:67:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8650,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "47047:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8659,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "47047:84:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8660,
												"nodeType": "ExpressionStatement",
												"src": "47047:84:12"
											}
										]
									},
									"id": 8662,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "46989:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8648,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8641,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "46998:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8662,
												"src": "46993:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8640,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "46993:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8643,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "47007:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8662,
												"src": "47002:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8642,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "47002:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8645,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "47016:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8662,
												"src": "47011:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8644,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "47011:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8647,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "47025:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8662,
												"src": "47020:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8646,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "47020:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "46992:36:12"
									},
									"returnParameters": {
										"id": 8649,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "47043:0:12"
									},
									"scope": 10618,
									"src": "46980:155:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8684,
										"nodeType": "Block",
										"src": "47204:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c6164647265737329",
																	"id": 8676,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "47248:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_8c329b1a1752dedfc6b781d23096b49b7f905d62405e6e3f0ab0344786ff69f4",
																		"typeString": "literal_string \"log(bool,bool,bool,address)\""
																	},
																	"value": "log(bool,bool,bool,address)"
																},
																{
																	"id": 8677,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8664,
																	"src": "47279:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8678,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8666,
																	"src": "47283:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8679,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8668,
																	"src": "47287:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8680,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8670,
																	"src": "47291:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_8c329b1a1752dedfc6b781d23096b49b7f905d62405e6e3f0ab0344786ff69f4",
																		"typeString": "literal_string \"log(bool,bool,bool,address)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 8674,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "47224:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8675,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "47224:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8681,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "47224:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8673,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "47208:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8682,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "47208:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8683,
												"nodeType": "ExpressionStatement",
												"src": "47208:87:12"
											}
										]
									},
									"id": 8685,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "47147:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8671,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8664,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "47156:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8685,
												"src": "47151:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8663,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "47151:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8666,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "47165:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8685,
												"src": "47160:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8665,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "47160:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8668,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "47174:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8685,
												"src": "47169:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8667,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "47169:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8670,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "47186:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8685,
												"src": "47178:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8669,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "47178:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "47150:39:12"
									},
									"returnParameters": {
										"id": 8672,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "47204:0:12"
									},
									"scope": 10618,
									"src": "47138:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8707,
										"nodeType": "Block",
										"src": "47368:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c626f6f6c2c616464726573732c75696e7429",
																	"id": 8699,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "47412:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_609386e78fd5b0eaf4b919077203f18b1606ddf72247d9e5eef9238918f7cf5e",
																		"typeString": "literal_string \"log(bool,bool,address,uint)\""
																	},
																	"value": "log(bool,bool,address,uint)"
																},
																{
																	"id": 8700,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8687,
																	"src": "47443:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8701,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8689,
																	"src": "47447:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8702,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8691,
																	"src": "47451:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 8703,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8693,
																	"src": "47455:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_609386e78fd5b0eaf4b919077203f18b1606ddf72247d9e5eef9238918f7cf5e",
																		"typeString": "literal_string \"log(bool,bool,address,uint)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 8697,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "47388:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8698,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "47388:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8704,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "47388:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8696,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "47372:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8705,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "47372:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8706,
												"nodeType": "ExpressionStatement",
												"src": "47372:87:12"
											}
										]
									},
									"id": 8708,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "47311:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8694,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8687,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "47320:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8708,
												"src": "47315:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8686,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "47315:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8689,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "47329:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8708,
												"src": "47324:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8688,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "47324:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8691,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "47341:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8708,
												"src": "47333:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8690,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "47333:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8693,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "47350:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8708,
												"src": "47345:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 8692,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "47345:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "47314:39:12"
									},
									"returnParameters": {
										"id": 8695,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "47368:0:12"
									},
									"scope": 10618,
									"src": "47302:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8730,
										"nodeType": "Block",
										"src": "47541:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c626f6f6c2c616464726573732c737472696e6729",
																	"id": 8722,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "47585:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_a0a479635c05dee438b610769de0f667f2e93ee267e4cd4badf3dd44eb6271d2",
																		"typeString": "literal_string \"log(bool,bool,address,string)\""
																	},
																	"value": "log(bool,bool,address,string)"
																},
																{
																	"id": 8723,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8710,
																	"src": "47618:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8724,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8712,
																	"src": "47622:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8725,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8714,
																	"src": "47626:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 8726,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8716,
																	"src": "47630:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_a0a479635c05dee438b610769de0f667f2e93ee267e4cd4badf3dd44eb6271d2",
																		"typeString": "literal_string \"log(bool,bool,address,string)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 8720,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "47561:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8721,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "47561:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8727,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "47561:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8719,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "47545:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8728,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "47545:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8729,
												"nodeType": "ExpressionStatement",
												"src": "47545:89:12"
											}
										]
									},
									"id": 8731,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "47475:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8717,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8710,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "47484:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8731,
												"src": "47479:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8709,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "47479:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8712,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "47493:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8731,
												"src": "47488:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8711,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "47488:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8714,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "47505:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8731,
												"src": "47497:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8713,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "47497:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8716,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "47523:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8731,
												"src": "47509:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8715,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "47509:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "47478:48:12"
									},
									"returnParameters": {
										"id": 8718,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "47541:0:12"
									},
									"scope": 10618,
									"src": "47466:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8753,
										"nodeType": "Block",
										"src": "47707:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c626f6f6c2c616464726573732c626f6f6c29",
																	"id": 8745,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "47751:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_c0a302d8f11e8919127c20f396068f7014b94967efb042778db9b27b68ee1eaf",
																		"typeString": "literal_string \"log(bool,bool,address,bool)\""
																	},
																	"value": "log(bool,bool,address,bool)"
																},
																{
																	"id": 8746,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8733,
																	"src": "47782:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8747,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8735,
																	"src": "47786:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8748,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8737,
																	"src": "47790:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 8749,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8739,
																	"src": "47794:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_c0a302d8f11e8919127c20f396068f7014b94967efb042778db9b27b68ee1eaf",
																		"typeString": "literal_string \"log(bool,bool,address,bool)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 8743,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "47727:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8744,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "47727:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8750,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "47727:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8742,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "47711:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8751,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "47711:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8752,
												"nodeType": "ExpressionStatement",
												"src": "47711:87:12"
											}
										]
									},
									"id": 8754,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "47650:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8740,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8733,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "47659:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8754,
												"src": "47654:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8732,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "47654:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8735,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "47668:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8754,
												"src": "47663:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8734,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "47663:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8737,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "47680:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8754,
												"src": "47672:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8736,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "47672:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8739,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "47689:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8754,
												"src": "47684:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8738,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "47684:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "47653:39:12"
									},
									"returnParameters": {
										"id": 8741,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "47707:0:12"
									},
									"scope": 10618,
									"src": "47641:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8776,
										"nodeType": "Block",
										"src": "47874:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c626f6f6c2c616464726573732c6164647265737329",
																	"id": 8768,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "47918:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_f4880ea4063b4f7e3c68468bb4a7a3f1502aa7497bce4fb0ba02ec0450f047f4",
																		"typeString": "literal_string \"log(bool,bool,address,address)\""
																	},
																	"value": "log(bool,bool,address,address)"
																},
																{
																	"id": 8769,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8756,
																	"src": "47952:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8770,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8758,
																	"src": "47956:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8771,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8760,
																	"src": "47960:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 8772,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8762,
																	"src": "47964:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_f4880ea4063b4f7e3c68468bb4a7a3f1502aa7497bce4fb0ba02ec0450f047f4",
																		"typeString": "literal_string \"log(bool,bool,address,address)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 8766,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "47894:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8767,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "47894:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8773,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "47894:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8765,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "47878:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8774,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "47878:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8775,
												"nodeType": "ExpressionStatement",
												"src": "47878:90:12"
											}
										]
									},
									"id": 8777,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "47814:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8763,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8756,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "47823:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8777,
												"src": "47818:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8755,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "47818:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8758,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "47832:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8777,
												"src": "47827:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8757,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "47827:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8760,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "47844:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8777,
												"src": "47836:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8759,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "47836:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8762,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "47856:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8777,
												"src": "47848:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8761,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "47848:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "47817:42:12"
									},
									"returnParameters": {
										"id": 8764,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "47874:0:12"
									},
									"scope": 10618,
									"src": "47805:167:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8799,
										"nodeType": "Block",
										"src": "48041:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c616464726573732c75696e742c75696e7429",
																	"id": 8791,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "48085:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_9bfe72bcae17311bf78638487cb2635e8b5b6f81761042494681e890b65ae4df",
																		"typeString": "literal_string \"log(bool,address,uint,uint)\""
																	},
																	"value": "log(bool,address,uint,uint)"
																},
																{
																	"id": 8792,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8779,
																	"src": "48116:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8793,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8781,
																	"src": "48120:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 8794,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8783,
																	"src": "48124:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 8795,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8785,
																	"src": "48128:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_9bfe72bcae17311bf78638487cb2635e8b5b6f81761042494681e890b65ae4df",
																		"typeString": "literal_string \"log(bool,address,uint,uint)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 8789,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "48061:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8790,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "48061:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8796,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "48061:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8788,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "48045:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8797,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "48045:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8798,
												"nodeType": "ExpressionStatement",
												"src": "48045:87:12"
											}
										]
									},
									"id": 8800,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "47984:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8786,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8779,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "47993:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8800,
												"src": "47988:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8778,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "47988:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8781,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "48005:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8800,
												"src": "47997:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8780,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "47997:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8783,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "48014:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8800,
												"src": "48009:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 8782,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "48009:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8785,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "48023:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8800,
												"src": "48018:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 8784,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "48018:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "47987:39:12"
									},
									"returnParameters": {
										"id": 8787,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "48041:0:12"
									},
									"scope": 10618,
									"src": "47975:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8822,
										"nodeType": "Block",
										"src": "48214:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c616464726573732c75696e742c737472696e6729",
																	"id": 8814,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "48258:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_a0685833a55270d98fa68e8c0a0f64fe3e03f6cdaeaebd8f87342de905392f45",
																		"typeString": "literal_string \"log(bool,address,uint,string)\""
																	},
																	"value": "log(bool,address,uint,string)"
																},
																{
																	"id": 8815,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8802,
																	"src": "48291:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8816,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8804,
																	"src": "48295:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 8817,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8806,
																	"src": "48299:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 8818,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8808,
																	"src": "48303:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_a0685833a55270d98fa68e8c0a0f64fe3e03f6cdaeaebd8f87342de905392f45",
																		"typeString": "literal_string \"log(bool,address,uint,string)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 8812,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "48234:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8813,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "48234:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8819,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "48234:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8811,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "48218:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8820,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "48218:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8821,
												"nodeType": "ExpressionStatement",
												"src": "48218:89:12"
											}
										]
									},
									"id": 8823,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "48148:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8809,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8802,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "48157:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8823,
												"src": "48152:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8801,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "48152:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8804,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "48169:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8823,
												"src": "48161:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8803,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "48161:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8806,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "48178:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8823,
												"src": "48173:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 8805,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "48173:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8808,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "48196:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8823,
												"src": "48182:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8807,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "48182:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "48151:48:12"
									},
									"returnParameters": {
										"id": 8810,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "48214:0:12"
									},
									"scope": 10618,
									"src": "48139:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8845,
										"nodeType": "Block",
										"src": "48380:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c616464726573732c75696e742c626f6f6c29",
																	"id": 8837,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "48424:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_ee8d8672273fdba9089296874ea62335af7f94273edab558dd69c0c81ad5275f",
																		"typeString": "literal_string \"log(bool,address,uint,bool)\""
																	},
																	"value": "log(bool,address,uint,bool)"
																},
																{
																	"id": 8838,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8825,
																	"src": "48455:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8839,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8827,
																	"src": "48459:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 8840,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8829,
																	"src": "48463:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 8841,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8831,
																	"src": "48467:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_ee8d8672273fdba9089296874ea62335af7f94273edab558dd69c0c81ad5275f",
																		"typeString": "literal_string \"log(bool,address,uint,bool)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 8835,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "48400:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8836,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "48400:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8842,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "48400:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8834,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "48384:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8843,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "48384:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8844,
												"nodeType": "ExpressionStatement",
												"src": "48384:87:12"
											}
										]
									},
									"id": 8846,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "48323:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8832,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8825,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "48332:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8846,
												"src": "48327:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8824,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "48327:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8827,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "48344:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8846,
												"src": "48336:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8826,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "48336:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8829,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "48353:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8846,
												"src": "48348:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 8828,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "48348:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8831,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "48362:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8846,
												"src": "48357:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8830,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "48357:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "48326:39:12"
									},
									"returnParameters": {
										"id": 8833,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "48380:0:12"
									},
									"scope": 10618,
									"src": "48314:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8868,
										"nodeType": "Block",
										"src": "48547:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c616464726573732c75696e742c6164647265737329",
																	"id": 8860,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "48591:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_68f158b5f9bd826807d19c20c2d71bd298a10503195154a299bf8d64baa18687",
																		"typeString": "literal_string \"log(bool,address,uint,address)\""
																	},
																	"value": "log(bool,address,uint,address)"
																},
																{
																	"id": 8861,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8848,
																	"src": "48625:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8862,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8850,
																	"src": "48629:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 8863,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8852,
																	"src": "48633:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 8864,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8854,
																	"src": "48637:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_68f158b5f9bd826807d19c20c2d71bd298a10503195154a299bf8d64baa18687",
																		"typeString": "literal_string \"log(bool,address,uint,address)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 8858,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "48567:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8859,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "48567:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8865,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "48567:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8857,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "48551:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8866,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "48551:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8867,
												"nodeType": "ExpressionStatement",
												"src": "48551:90:12"
											}
										]
									},
									"id": 8869,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "48487:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8855,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8848,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "48496:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8869,
												"src": "48491:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8847,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "48491:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8850,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "48508:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8869,
												"src": "48500:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8849,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "48500:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8852,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "48517:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8869,
												"src": "48512:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 8851,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "48512:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8854,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "48529:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8869,
												"src": "48521:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8853,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "48521:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "48490:42:12"
									},
									"returnParameters": {
										"id": 8856,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "48547:0:12"
									},
									"scope": 10618,
									"src": "48478:167:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8891,
										"nodeType": "Block",
										"src": "48723:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c616464726573732c737472696e672c75696e7429",
																	"id": 8883,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "48767:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_0b99fc2207222410afd35c7faf7feba54ff2367ba89f893584c27ce75693de6e",
																		"typeString": "literal_string \"log(bool,address,string,uint)\""
																	},
																	"value": "log(bool,address,string,uint)"
																},
																{
																	"id": 8884,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8871,
																	"src": "48800:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8885,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8873,
																	"src": "48804:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 8886,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8875,
																	"src": "48808:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 8887,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8877,
																	"src": "48812:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_0b99fc2207222410afd35c7faf7feba54ff2367ba89f893584c27ce75693de6e",
																		"typeString": "literal_string \"log(bool,address,string,uint)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 8881,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "48743:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8882,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "48743:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8888,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "48743:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8880,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "48727:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8889,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "48727:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8890,
												"nodeType": "ExpressionStatement",
												"src": "48727:89:12"
											}
										]
									},
									"id": 8892,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "48657:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8878,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8871,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "48666:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8892,
												"src": "48661:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8870,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "48661:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8873,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "48678:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8892,
												"src": "48670:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8872,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "48670:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8875,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "48696:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8892,
												"src": "48682:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8874,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "48682:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8877,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "48705:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8892,
												"src": "48700:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 8876,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "48700:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "48660:48:12"
									},
									"returnParameters": {
										"id": 8879,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "48723:0:12"
									},
									"scope": 10618,
									"src": "48648:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8914,
										"nodeType": "Block",
										"src": "48907:99:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c616464726573732c737472696e672c737472696e6729",
																	"id": 8906,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "48951:33:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_a73c1db639dbf1382c9113eacdf5b14a7ccd81fc001ac60393623936011bf49d",
																		"typeString": "literal_string \"log(bool,address,string,string)\""
																	},
																	"value": "log(bool,address,string,string)"
																},
																{
																	"id": 8907,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8894,
																	"src": "48986:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8908,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8896,
																	"src": "48990:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 8909,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8898,
																	"src": "48994:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 8910,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8900,
																	"src": "48998:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_a73c1db639dbf1382c9113eacdf5b14a7ccd81fc001ac60393623936011bf49d",
																		"typeString": "literal_string \"log(bool,address,string,string)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 8904,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "48927:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8905,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "48927:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8911,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "48927:74:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8903,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "48911:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8912,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "48911:91:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8913,
												"nodeType": "ExpressionStatement",
												"src": "48911:91:12"
											}
										]
									},
									"id": 8915,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "48832:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8901,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8894,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "48841:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8915,
												"src": "48836:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8893,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "48836:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8896,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "48853:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8915,
												"src": "48845:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8895,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "48845:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8898,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "48871:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8915,
												"src": "48857:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8897,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "48857:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8900,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "48889:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8915,
												"src": "48875:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8899,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "48875:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "48835:57:12"
									},
									"returnParameters": {
										"id": 8902,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "48907:0:12"
									},
									"scope": 10618,
									"src": "48823:183:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8937,
										"nodeType": "Block",
										"src": "49084:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c616464726573732c737472696e672c626f6f6c29",
																	"id": 8929,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "49128:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_e2bfd60b4f6acdab0603dda631b69bf37ab7cbf71bc5953f9ed72c1f2a76f7dc",
																		"typeString": "literal_string \"log(bool,address,string,bool)\""
																	},
																	"value": "log(bool,address,string,bool)"
																},
																{
																	"id": 8930,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8917,
																	"src": "49161:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8931,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8919,
																	"src": "49165:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 8932,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8921,
																	"src": "49169:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 8933,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8923,
																	"src": "49173:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_e2bfd60b4f6acdab0603dda631b69bf37ab7cbf71bc5953f9ed72c1f2a76f7dc",
																		"typeString": "literal_string \"log(bool,address,string,bool)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 8927,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "49104:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8928,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "49104:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8934,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "49104:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8926,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "49088:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8935,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "49088:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8936,
												"nodeType": "ExpressionStatement",
												"src": "49088:89:12"
											}
										]
									},
									"id": 8938,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "49018:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8924,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8917,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "49027:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8938,
												"src": "49022:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8916,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "49022:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8919,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "49039:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8938,
												"src": "49031:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8918,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "49031:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8921,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "49057:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8938,
												"src": "49043:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8920,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "49043:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8923,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "49066:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8938,
												"src": "49061:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8922,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "49061:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "49021:48:12"
									},
									"returnParameters": {
										"id": 8925,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "49084:0:12"
									},
									"scope": 10618,
									"src": "49009:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8960,
										"nodeType": "Block",
										"src": "49262:100:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c616464726573732c737472696e672c6164647265737329",
																	"id": 8952,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "49306:34:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_6f7c603e9035cbc7959bb3d44ec862ddc6711eecebd67d54ceb0010f42f85654",
																		"typeString": "literal_string \"log(bool,address,string,address)\""
																	},
																	"value": "log(bool,address,string,address)"
																},
																{
																	"id": 8953,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8940,
																	"src": "49342:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8954,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8942,
																	"src": "49346:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 8955,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8944,
																	"src": "49350:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 8956,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8946,
																	"src": "49354:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_6f7c603e9035cbc7959bb3d44ec862ddc6711eecebd67d54ceb0010f42f85654",
																		"typeString": "literal_string \"log(bool,address,string,address)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 8950,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "49282:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8951,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "49282:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8957,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "49282:75:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8949,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "49266:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8958,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "49266:92:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8959,
												"nodeType": "ExpressionStatement",
												"src": "49266:92:12"
											}
										]
									},
									"id": 8961,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "49193:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8947,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8940,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "49202:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8961,
												"src": "49197:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8939,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "49197:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8942,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "49214:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8961,
												"src": "49206:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8941,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "49206:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8944,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "49232:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8961,
												"src": "49218:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8943,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "49218:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8946,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "49244:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8961,
												"src": "49236:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8945,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "49236:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "49196:51:12"
									},
									"returnParameters": {
										"id": 8948,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "49262:0:12"
									},
									"scope": 10618,
									"src": "49184:178:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 8983,
										"nodeType": "Block",
										"src": "49431:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c616464726573732c626f6f6c2c75696e7429",
																	"id": 8975,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "49475:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_4cb60fd1171fb665e1565124463601e5c451a362c8efbc6e1fcfbffbbb9850d9",
																		"typeString": "literal_string \"log(bool,address,bool,uint)\""
																	},
																	"value": "log(bool,address,bool,uint)"
																},
																{
																	"id": 8976,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8963,
																	"src": "49506:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8977,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8965,
																	"src": "49510:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 8978,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8967,
																	"src": "49514:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 8979,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8969,
																	"src": "49518:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_4cb60fd1171fb665e1565124463601e5c451a362c8efbc6e1fcfbffbbb9850d9",
																		"typeString": "literal_string \"log(bool,address,bool,uint)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 8973,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "49451:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8974,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "49451:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 8980,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "49451:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8972,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "49435:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 8981,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "49435:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 8982,
												"nodeType": "ExpressionStatement",
												"src": "49435:87:12"
											}
										]
									},
									"id": 8984,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "49374:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8970,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8963,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "49383:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8984,
												"src": "49378:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8962,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "49378:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8965,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "49395:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8984,
												"src": "49387:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8964,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "49387:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8967,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "49404:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8984,
												"src": "49399:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8966,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "49399:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8969,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "49413:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 8984,
												"src": "49408:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 8968,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "49408:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "49377:39:12"
									},
									"returnParameters": {
										"id": 8971,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "49431:0:12"
									},
									"scope": 10618,
									"src": "49365:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9006,
										"nodeType": "Block",
										"src": "49604:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c616464726573732c626f6f6c2c737472696e6729",
																	"id": 8998,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "49648:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_4a66cb34796065525d301a5b87b440b55f1936e34dd66e2f2039307bc4e3ea59",
																		"typeString": "literal_string \"log(bool,address,bool,string)\""
																	},
																	"value": "log(bool,address,bool,string)"
																},
																{
																	"id": 8999,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8986,
																	"src": "49681:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 9000,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8988,
																	"src": "49685:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9001,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8990,
																	"src": "49689:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 9002,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 8992,
																	"src": "49693:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_4a66cb34796065525d301a5b87b440b55f1936e34dd66e2f2039307bc4e3ea59",
																		"typeString": "literal_string \"log(bool,address,bool,string)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 8996,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "49624:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 8997,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "49624:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9003,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "49624:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 8995,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "49608:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9004,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "49608:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9005,
												"nodeType": "ExpressionStatement",
												"src": "49608:89:12"
											}
										]
									},
									"id": 9007,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "49538:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 8993,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 8986,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "49547:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9007,
												"src": "49542:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8985,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "49542:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8988,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "49559:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9007,
												"src": "49551:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 8987,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "49551:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8990,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "49568:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9007,
												"src": "49563:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 8989,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "49563:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 8992,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "49586:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9007,
												"src": "49572:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 8991,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "49572:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "49541:48:12"
									},
									"returnParameters": {
										"id": 8994,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "49604:0:12"
									},
									"scope": 10618,
									"src": "49529:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9029,
										"nodeType": "Block",
										"src": "49770:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c616464726573732c626f6f6c2c626f6f6c29",
																	"id": 9021,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "49814:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_6a9c478bc98300d44308882e2e0b5864f2536a2939cb77105f503738b5832577",
																		"typeString": "literal_string \"log(bool,address,bool,bool)\""
																	},
																	"value": "log(bool,address,bool,bool)"
																},
																{
																	"id": 9022,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9009,
																	"src": "49845:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 9023,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9011,
																	"src": "49849:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9024,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9013,
																	"src": "49853:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 9025,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9015,
																	"src": "49857:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_6a9c478bc98300d44308882e2e0b5864f2536a2939cb77105f503738b5832577",
																		"typeString": "literal_string \"log(bool,address,bool,bool)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 9019,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "49790:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9020,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "49790:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9026,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "49790:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9018,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "49774:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9027,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "49774:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9028,
												"nodeType": "ExpressionStatement",
												"src": "49774:87:12"
											}
										]
									},
									"id": 9030,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "49713:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9016,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9009,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "49722:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9030,
												"src": "49717:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9008,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "49717:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9011,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "49734:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9030,
												"src": "49726:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9010,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "49726:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9013,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "49743:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9030,
												"src": "49738:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9012,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "49738:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9015,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "49752:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9030,
												"src": "49747:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9014,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "49747:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "49716:39:12"
									},
									"returnParameters": {
										"id": 9017,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "49770:0:12"
									},
									"scope": 10618,
									"src": "49704:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9052,
										"nodeType": "Block",
										"src": "49937:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c616464726573732c626f6f6c2c6164647265737329",
																	"id": 9044,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "49981:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_1c41a336759f1c2fe1d8b137296b2dfbdcfe7114fc53f203852c2835c09f8870",
																		"typeString": "literal_string \"log(bool,address,bool,address)\""
																	},
																	"value": "log(bool,address,bool,address)"
																},
																{
																	"id": 9045,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9032,
																	"src": "50015:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 9046,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9034,
																	"src": "50019:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9047,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9036,
																	"src": "50023:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 9048,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9038,
																	"src": "50027:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_1c41a336759f1c2fe1d8b137296b2dfbdcfe7114fc53f203852c2835c09f8870",
																		"typeString": "literal_string \"log(bool,address,bool,address)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 9042,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "49957:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9043,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "49957:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9049,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "49957:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9041,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "49941:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9050,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "49941:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9051,
												"nodeType": "ExpressionStatement",
												"src": "49941:90:12"
											}
										]
									},
									"id": 9053,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "49877:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9039,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9032,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "49886:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9053,
												"src": "49881:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9031,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "49881:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9034,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "49898:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9053,
												"src": "49890:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9033,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "49890:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9036,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "49907:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9053,
												"src": "49902:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9035,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "49902:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9038,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "49919:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9053,
												"src": "49911:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9037,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "49911:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "49880:42:12"
									},
									"returnParameters": {
										"id": 9040,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "49937:0:12"
									},
									"scope": 10618,
									"src": "49868:167:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9075,
										"nodeType": "Block",
										"src": "50107:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c616464726573732c616464726573732c75696e7429",
																	"id": 9067,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "50151:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_5284bd6c2d02d32d79d43dcd0793be5ced63bf4e51bea38208974f6d8ca5def7",
																		"typeString": "literal_string \"log(bool,address,address,uint)\""
																	},
																	"value": "log(bool,address,address,uint)"
																},
																{
																	"id": 9068,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9055,
																	"src": "50185:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 9069,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9057,
																	"src": "50189:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9070,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9059,
																	"src": "50193:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9071,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9061,
																	"src": "50197:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_5284bd6c2d02d32d79d43dcd0793be5ced63bf4e51bea38208974f6d8ca5def7",
																		"typeString": "literal_string \"log(bool,address,address,uint)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 9065,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "50127:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9066,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "50127:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9072,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "50127:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9064,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "50111:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9073,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "50111:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9074,
												"nodeType": "ExpressionStatement",
												"src": "50111:90:12"
											}
										]
									},
									"id": 9076,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "50047:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9062,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9055,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "50056:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9076,
												"src": "50051:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9054,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "50051:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9057,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "50068:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9076,
												"src": "50060:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9056,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "50060:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9059,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "50080:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9076,
												"src": "50072:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9058,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "50072:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9061,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "50089:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9076,
												"src": "50084:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9060,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "50084:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "50050:42:12"
									},
									"returnParameters": {
										"id": 9063,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "50107:0:12"
									},
									"scope": 10618,
									"src": "50038:167:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9098,
										"nodeType": "Block",
										"src": "50286:100:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c616464726573732c616464726573732c737472696e6729",
																	"id": 9090,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "50330:34:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_d812a167fb7ec8cf55a11f06ff411238f0a431de331592d8a735c8c8481f7432",
																		"typeString": "literal_string \"log(bool,address,address,string)\""
																	},
																	"value": "log(bool,address,address,string)"
																},
																{
																	"id": 9091,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9078,
																	"src": "50366:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 9092,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9080,
																	"src": "50370:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9093,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9082,
																	"src": "50374:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9094,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9084,
																	"src": "50378:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_d812a167fb7ec8cf55a11f06ff411238f0a431de331592d8a735c8c8481f7432",
																		"typeString": "literal_string \"log(bool,address,address,string)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 9088,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "50306:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9089,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "50306:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9095,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "50306:75:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9087,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "50290:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9096,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "50290:92:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9097,
												"nodeType": "ExpressionStatement",
												"src": "50290:92:12"
											}
										]
									},
									"id": 9099,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "50217:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9085,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9078,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "50226:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9099,
												"src": "50221:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9077,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "50221:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9080,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "50238:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9099,
												"src": "50230:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9079,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "50230:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9082,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "50250:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9099,
												"src": "50242:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9081,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "50242:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9084,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "50268:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9099,
												"src": "50254:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9083,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "50254:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "50220:51:12"
									},
									"returnParameters": {
										"id": 9086,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "50286:0:12"
									},
									"scope": 10618,
									"src": "50208:178:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9121,
										"nodeType": "Block",
										"src": "50458:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c616464726573732c616464726573732c626f6f6c29",
																	"id": 9113,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "50502:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_46600be071bbf2a7e3a3cb4fd0e6efe39e86453e4c4a27c400470867be7afd9e",
																		"typeString": "literal_string \"log(bool,address,address,bool)\""
																	},
																	"value": "log(bool,address,address,bool)"
																},
																{
																	"id": 9114,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9101,
																	"src": "50536:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 9115,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9103,
																	"src": "50540:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9116,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9105,
																	"src": "50544:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9117,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9107,
																	"src": "50548:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_46600be071bbf2a7e3a3cb4fd0e6efe39e86453e4c4a27c400470867be7afd9e",
																		"typeString": "literal_string \"log(bool,address,address,bool)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 9111,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "50478:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9112,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "50478:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9118,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "50478:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9110,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "50462:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9119,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "50462:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9120,
												"nodeType": "ExpressionStatement",
												"src": "50462:90:12"
											}
										]
									},
									"id": 9122,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "50398:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9108,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9101,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "50407:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9122,
												"src": "50402:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9100,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "50402:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9103,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "50419:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9122,
												"src": "50411:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9102,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "50411:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9105,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "50431:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9122,
												"src": "50423:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9104,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "50423:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9107,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "50440:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9122,
												"src": "50435:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9106,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "50435:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "50401:42:12"
									},
									"returnParameters": {
										"id": 9109,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "50458:0:12"
									},
									"scope": 10618,
									"src": "50389:167:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9144,
										"nodeType": "Block",
										"src": "50631:101:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728626f6f6c2c616464726573732c616464726573732c6164647265737329",
																	"id": 9136,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "50675:35:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_1d14d00189540d88098b9fe614aa8c0efbe231c1a0fee05e7d705c0342377123",
																		"typeString": "literal_string \"log(bool,address,address,address)\""
																	},
																	"value": "log(bool,address,address,address)"
																},
																{
																	"id": 9137,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9124,
																	"src": "50712:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 9138,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9126,
																	"src": "50716:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9139,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9128,
																	"src": "50720:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9140,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9130,
																	"src": "50724:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_1d14d00189540d88098b9fe614aa8c0efbe231c1a0fee05e7d705c0342377123",
																		"typeString": "literal_string \"log(bool,address,address,address)\""
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 9134,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "50651:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9135,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "50651:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9141,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "50651:76:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9133,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "50635:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9142,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "50635:93:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9143,
												"nodeType": "ExpressionStatement",
												"src": "50635:93:12"
											}
										]
									},
									"id": 9145,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "50568:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9131,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9124,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "50577:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9145,
												"src": "50572:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9123,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "50572:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9126,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "50589:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9145,
												"src": "50581:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9125,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "50581:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9128,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "50601:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9145,
												"src": "50593:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9127,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "50593:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9130,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "50613:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9145,
												"src": "50605:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9129,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "50605:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "50571:45:12"
									},
									"returnParameters": {
										"id": 9132,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "50631:0:12"
									},
									"scope": 10618,
									"src": "50559:173:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9167,
										"nodeType": "Block",
										"src": "50801:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c75696e742c75696e742c75696e7429",
																	"id": 9159,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "50845:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_3d0e9de46a80fe11d0044e9599dfddd0e8b842cabe189638f7090f19867918c1",
																		"typeString": "literal_string \"log(address,uint,uint,uint)\""
																	},
																	"value": "log(address,uint,uint,uint)"
																},
																{
																	"id": 9160,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9147,
																	"src": "50876:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9161,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9149,
																	"src": "50880:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 9162,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9151,
																	"src": "50884:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 9163,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9153,
																	"src": "50888:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_3d0e9de46a80fe11d0044e9599dfddd0e8b842cabe189638f7090f19867918c1",
																		"typeString": "literal_string \"log(address,uint,uint,uint)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 9157,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "50821:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9158,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "50821:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9164,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "50821:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9156,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "50805:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9165,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "50805:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9166,
												"nodeType": "ExpressionStatement",
												"src": "50805:87:12"
											}
										]
									},
									"id": 9168,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "50744:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9154,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9147,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "50756:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9168,
												"src": "50748:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9146,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "50748:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9149,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "50765:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9168,
												"src": "50760:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9148,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "50760:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9151,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "50774:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9168,
												"src": "50769:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9150,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "50769:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9153,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "50783:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9168,
												"src": "50778:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9152,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "50778:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "50747:39:12"
									},
									"returnParameters": {
										"id": 9155,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "50801:0:12"
									},
									"scope": 10618,
									"src": "50735:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9190,
										"nodeType": "Block",
										"src": "50974:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c75696e742c75696e742c737472696e6729",
																	"id": 9182,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "51018:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_89340dab4d23e956541beb32775ccfee8376ba263886dd811a646420a3a403a3",
																		"typeString": "literal_string \"log(address,uint,uint,string)\""
																	},
																	"value": "log(address,uint,uint,string)"
																},
																{
																	"id": 9183,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9170,
																	"src": "51051:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9184,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9172,
																	"src": "51055:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 9185,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9174,
																	"src": "51059:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 9186,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9176,
																	"src": "51063:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_89340dab4d23e956541beb32775ccfee8376ba263886dd811a646420a3a403a3",
																		"typeString": "literal_string \"log(address,uint,uint,string)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 9180,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "50994:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9181,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "50994:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9187,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "50994:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9179,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "50978:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9188,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "50978:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9189,
												"nodeType": "ExpressionStatement",
												"src": "50978:89:12"
											}
										]
									},
									"id": 9191,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "50908:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9177,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9170,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "50920:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9191,
												"src": "50912:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9169,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "50912:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9172,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "50929:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9191,
												"src": "50924:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9171,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "50924:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9174,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "50938:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9191,
												"src": "50933:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9173,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "50933:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9176,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "50956:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9191,
												"src": "50942:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9175,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "50942:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "50911:48:12"
									},
									"returnParameters": {
										"id": 9178,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "50974:0:12"
									},
									"scope": 10618,
									"src": "50899:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9213,
										"nodeType": "Block",
										"src": "51140:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c75696e742c75696e742c626f6f6c29",
																	"id": 9205,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "51184:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_ec4ba8a24543362f628480c68bc2d6749e97ab33d46530db336a528c77e48393",
																		"typeString": "literal_string \"log(address,uint,uint,bool)\""
																	},
																	"value": "log(address,uint,uint,bool)"
																},
																{
																	"id": 9206,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9193,
																	"src": "51215:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9207,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9195,
																	"src": "51219:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 9208,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9197,
																	"src": "51223:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 9209,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9199,
																	"src": "51227:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_ec4ba8a24543362f628480c68bc2d6749e97ab33d46530db336a528c77e48393",
																		"typeString": "literal_string \"log(address,uint,uint,bool)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 9203,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "51160:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9204,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "51160:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9210,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "51160:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9202,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "51144:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9211,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "51144:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9212,
												"nodeType": "ExpressionStatement",
												"src": "51144:87:12"
											}
										]
									},
									"id": 9214,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "51083:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9200,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9193,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "51095:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9214,
												"src": "51087:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9192,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "51087:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9195,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "51104:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9214,
												"src": "51099:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9194,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "51099:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9197,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "51113:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9214,
												"src": "51108:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9196,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "51108:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9199,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "51122:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9214,
												"src": "51117:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9198,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "51117:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "51086:39:12"
									},
									"returnParameters": {
										"id": 9201,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "51140:0:12"
									},
									"scope": 10618,
									"src": "51074:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9236,
										"nodeType": "Block",
										"src": "51307:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c75696e742c75696e742c6164647265737329",
																	"id": 9228,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "51351:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_1ef634347c2e4a2aa1a4e4e13d33bf0169f02bc4d10ff6168ca604cf3134d957",
																		"typeString": "literal_string \"log(address,uint,uint,address)\""
																	},
																	"value": "log(address,uint,uint,address)"
																},
																{
																	"id": 9229,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9216,
																	"src": "51385:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9230,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9218,
																	"src": "51389:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 9231,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9220,
																	"src": "51393:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 9232,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9222,
																	"src": "51397:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_1ef634347c2e4a2aa1a4e4e13d33bf0169f02bc4d10ff6168ca604cf3134d957",
																		"typeString": "literal_string \"log(address,uint,uint,address)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 9226,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "51327:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9227,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "51327:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9233,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "51327:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9225,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "51311:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9234,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "51311:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9235,
												"nodeType": "ExpressionStatement",
												"src": "51311:90:12"
											}
										]
									},
									"id": 9237,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "51247:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9223,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9216,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "51259:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9237,
												"src": "51251:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9215,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "51251:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9218,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "51268:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9237,
												"src": "51263:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9217,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "51263:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9220,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "51277:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9237,
												"src": "51272:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9219,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "51272:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9222,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "51289:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9237,
												"src": "51281:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9221,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "51281:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "51250:42:12"
									},
									"returnParameters": {
										"id": 9224,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "51307:0:12"
									},
									"scope": 10618,
									"src": "51238:167:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9259,
										"nodeType": "Block",
										"src": "51483:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c75696e742c737472696e672c75696e7429",
																	"id": 9251,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "51527:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_f512cf9b6f6b16313e82164dab4a017b25c36dde729112fd1b69de438557701b",
																		"typeString": "literal_string \"log(address,uint,string,uint)\""
																	},
																	"value": "log(address,uint,string,uint)"
																},
																{
																	"id": 9252,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9239,
																	"src": "51560:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9253,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9241,
																	"src": "51564:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 9254,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9243,
																	"src": "51568:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 9255,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9245,
																	"src": "51572:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_f512cf9b6f6b16313e82164dab4a017b25c36dde729112fd1b69de438557701b",
																		"typeString": "literal_string \"log(address,uint,string,uint)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 9249,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "51503:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9250,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "51503:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9256,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "51503:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9248,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "51487:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9257,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "51487:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9258,
												"nodeType": "ExpressionStatement",
												"src": "51487:89:12"
											}
										]
									},
									"id": 9260,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "51417:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9246,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9239,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "51429:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9260,
												"src": "51421:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9238,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "51421:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9241,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "51438:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9260,
												"src": "51433:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9240,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "51433:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9243,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "51456:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9260,
												"src": "51442:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9242,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "51442:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9245,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "51465:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9260,
												"src": "51460:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9244,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "51460:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "51420:48:12"
									},
									"returnParameters": {
										"id": 9247,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "51483:0:12"
									},
									"scope": 10618,
									"src": "51408:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9282,
										"nodeType": "Block",
										"src": "51667:99:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c75696e742c737472696e672c737472696e6729",
																	"id": 9274,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "51711:33:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_7e56c693294848e354fd0e0f30db9c459984681d518306ec606cfd6f328a5ba0",
																		"typeString": "literal_string \"log(address,uint,string,string)\""
																	},
																	"value": "log(address,uint,string,string)"
																},
																{
																	"id": 9275,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9262,
																	"src": "51746:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9276,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9264,
																	"src": "51750:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 9277,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9266,
																	"src": "51754:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 9278,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9268,
																	"src": "51758:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_7e56c693294848e354fd0e0f30db9c459984681d518306ec606cfd6f328a5ba0",
																		"typeString": "literal_string \"log(address,uint,string,string)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 9272,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "51687:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9273,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "51687:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9279,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "51687:74:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9271,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "51671:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9280,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "51671:91:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9281,
												"nodeType": "ExpressionStatement",
												"src": "51671:91:12"
											}
										]
									},
									"id": 9283,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "51592:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9269,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9262,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "51604:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9283,
												"src": "51596:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9261,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "51596:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9264,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "51613:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9283,
												"src": "51608:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9263,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "51608:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9266,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "51631:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9283,
												"src": "51617:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9265,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "51617:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9268,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "51649:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9283,
												"src": "51635:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9267,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "51635:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "51595:57:12"
									},
									"returnParameters": {
										"id": 9270,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "51667:0:12"
									},
									"scope": 10618,
									"src": "51583:183:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9305,
										"nodeType": "Block",
										"src": "51844:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c75696e742c737472696e672c626f6f6c29",
																	"id": 9297,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "51888:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_a4024f1195637e9b9bd0fa746905cf1693b1e0cd3e1c717a1cbc5279763b256a",
																		"typeString": "literal_string \"log(address,uint,string,bool)\""
																	},
																	"value": "log(address,uint,string,bool)"
																},
																{
																	"id": 9298,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9285,
																	"src": "51921:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9299,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9287,
																	"src": "51925:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 9300,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9289,
																	"src": "51929:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 9301,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9291,
																	"src": "51933:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_a4024f1195637e9b9bd0fa746905cf1693b1e0cd3e1c717a1cbc5279763b256a",
																		"typeString": "literal_string \"log(address,uint,string,bool)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 9295,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "51864:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9296,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "51864:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9302,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "51864:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9294,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "51848:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9303,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "51848:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9304,
												"nodeType": "ExpressionStatement",
												"src": "51848:89:12"
											}
										]
									},
									"id": 9306,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "51778:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9292,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9285,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "51790:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9306,
												"src": "51782:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9284,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "51782:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9287,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "51799:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9306,
												"src": "51794:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9286,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "51794:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9289,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "51817:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9306,
												"src": "51803:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9288,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "51803:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9291,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "51826:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9306,
												"src": "51821:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9290,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "51821:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "51781:48:12"
									},
									"returnParameters": {
										"id": 9293,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "51844:0:12"
									},
									"scope": 10618,
									"src": "51769:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9328,
										"nodeType": "Block",
										"src": "52022:100:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c75696e742c737472696e672c6164647265737329",
																	"id": 9320,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "52066:34:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_dc792604099307de53721f0c554f3059214ac3d8d1f6cd01cd16cf188835e809",
																		"typeString": "literal_string \"log(address,uint,string,address)\""
																	},
																	"value": "log(address,uint,string,address)"
																},
																{
																	"id": 9321,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9308,
																	"src": "52102:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9322,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9310,
																	"src": "52106:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 9323,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9312,
																	"src": "52110:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 9324,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9314,
																	"src": "52114:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_dc792604099307de53721f0c554f3059214ac3d8d1f6cd01cd16cf188835e809",
																		"typeString": "literal_string \"log(address,uint,string,address)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 9318,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "52042:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9319,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "52042:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9325,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "52042:75:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9317,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "52026:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9326,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "52026:92:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9327,
												"nodeType": "ExpressionStatement",
												"src": "52026:92:12"
											}
										]
									},
									"id": 9329,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "51953:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9315,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9308,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "51965:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9329,
												"src": "51957:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9307,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "51957:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9310,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "51974:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9329,
												"src": "51969:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9309,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "51969:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9312,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "51992:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9329,
												"src": "51978:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9311,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "51978:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9314,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "52004:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9329,
												"src": "51996:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9313,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "51996:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "51956:51:12"
									},
									"returnParameters": {
										"id": 9316,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "52022:0:12"
									},
									"scope": 10618,
									"src": "51944:178:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9351,
										"nodeType": "Block",
										"src": "52191:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c75696e742c626f6f6c2c75696e7429",
																	"id": 9343,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "52235:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_698f43923a9354f67c861ae1c111970990b11c7f948743e5f44d6ea901e7f1a2",
																		"typeString": "literal_string \"log(address,uint,bool,uint)\""
																	},
																	"value": "log(address,uint,bool,uint)"
																},
																{
																	"id": 9344,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9331,
																	"src": "52266:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9345,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9333,
																	"src": "52270:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 9346,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9335,
																	"src": "52274:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 9347,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9337,
																	"src": "52278:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_698f43923a9354f67c861ae1c111970990b11c7f948743e5f44d6ea901e7f1a2",
																		"typeString": "literal_string \"log(address,uint,bool,uint)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 9341,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "52211:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9342,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "52211:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9348,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "52211:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9340,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "52195:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9349,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "52195:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9350,
												"nodeType": "ExpressionStatement",
												"src": "52195:87:12"
											}
										]
									},
									"id": 9352,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "52134:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9338,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9331,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "52146:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9352,
												"src": "52138:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9330,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "52138:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9333,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "52155:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9352,
												"src": "52150:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9332,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "52150:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9335,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "52164:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9352,
												"src": "52159:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9334,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "52159:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9337,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "52173:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9352,
												"src": "52168:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9336,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "52168:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "52137:39:12"
									},
									"returnParameters": {
										"id": 9339,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "52191:0:12"
									},
									"scope": 10618,
									"src": "52125:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9374,
										"nodeType": "Block",
										"src": "52364:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c75696e742c626f6f6c2c737472696e6729",
																	"id": 9366,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "52408:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_8e8e4e75a8ccb3f0e11ad74335eebf7a17a78463e99c3b077ff34193a8918f3f",
																		"typeString": "literal_string \"log(address,uint,bool,string)\""
																	},
																	"value": "log(address,uint,bool,string)"
																},
																{
																	"id": 9367,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9354,
																	"src": "52441:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9368,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9356,
																	"src": "52445:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 9369,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9358,
																	"src": "52449:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 9370,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9360,
																	"src": "52453:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_8e8e4e75a8ccb3f0e11ad74335eebf7a17a78463e99c3b077ff34193a8918f3f",
																		"typeString": "literal_string \"log(address,uint,bool,string)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 9364,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "52384:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9365,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "52384:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9371,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "52384:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9363,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "52368:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9372,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "52368:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9373,
												"nodeType": "ExpressionStatement",
												"src": "52368:89:12"
											}
										]
									},
									"id": 9375,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "52298:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9361,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9354,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "52310:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9375,
												"src": "52302:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9353,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "52302:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9356,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "52319:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9375,
												"src": "52314:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9355,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "52314:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9358,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "52328:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9375,
												"src": "52323:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9357,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "52323:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9360,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "52346:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9375,
												"src": "52332:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9359,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "52332:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "52301:48:12"
									},
									"returnParameters": {
										"id": 9362,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "52364:0:12"
									},
									"scope": 10618,
									"src": "52289:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9397,
										"nodeType": "Block",
										"src": "52530:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c75696e742c626f6f6c2c626f6f6c29",
																	"id": 9389,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "52574:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_fea1d55aec42c422504acea77de45574d2fa3abd9dc9c6288741e19c3bd9849b",
																		"typeString": "literal_string \"log(address,uint,bool,bool)\""
																	},
																	"value": "log(address,uint,bool,bool)"
																},
																{
																	"id": 9390,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9377,
																	"src": "52605:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9391,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9379,
																	"src": "52609:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 9392,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9381,
																	"src": "52613:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 9393,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9383,
																	"src": "52617:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_fea1d55aec42c422504acea77de45574d2fa3abd9dc9c6288741e19c3bd9849b",
																		"typeString": "literal_string \"log(address,uint,bool,bool)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 9387,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "52550:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9388,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "52550:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9394,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "52550:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9386,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "52534:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9395,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "52534:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9396,
												"nodeType": "ExpressionStatement",
												"src": "52534:87:12"
											}
										]
									},
									"id": 9398,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "52473:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9384,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9377,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "52485:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9398,
												"src": "52477:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9376,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "52477:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9379,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "52494:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9398,
												"src": "52489:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9378,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "52489:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9381,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "52503:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9398,
												"src": "52498:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9380,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "52498:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9383,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "52512:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9398,
												"src": "52507:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9382,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "52507:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "52476:39:12"
									},
									"returnParameters": {
										"id": 9385,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "52530:0:12"
									},
									"scope": 10618,
									"src": "52464:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9420,
										"nodeType": "Block",
										"src": "52697:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c75696e742c626f6f6c2c6164647265737329",
																	"id": 9412,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "52741:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_23e5497254e625e6c33a3fa3eb47ff18f6bac3345da52f847bd5571820febf2d",
																		"typeString": "literal_string \"log(address,uint,bool,address)\""
																	},
																	"value": "log(address,uint,bool,address)"
																},
																{
																	"id": 9413,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9400,
																	"src": "52775:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9414,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9402,
																	"src": "52779:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 9415,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9404,
																	"src": "52783:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 9416,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9406,
																	"src": "52787:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_23e5497254e625e6c33a3fa3eb47ff18f6bac3345da52f847bd5571820febf2d",
																		"typeString": "literal_string \"log(address,uint,bool,address)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 9410,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "52717:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9411,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "52717:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9417,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "52717:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9409,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "52701:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9418,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "52701:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9419,
												"nodeType": "ExpressionStatement",
												"src": "52701:90:12"
											}
										]
									},
									"id": 9421,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "52637:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9407,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9400,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "52649:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9421,
												"src": "52641:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9399,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "52641:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9402,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "52658:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9421,
												"src": "52653:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9401,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "52653:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9404,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "52667:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9421,
												"src": "52662:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9403,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "52662:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9406,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "52679:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9421,
												"src": "52671:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9405,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "52671:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "52640:42:12"
									},
									"returnParameters": {
										"id": 9408,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "52697:0:12"
									},
									"scope": 10618,
									"src": "52628:167:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9443,
										"nodeType": "Block",
										"src": "52867:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c75696e742c616464726573732c75696e7429",
																	"id": 9435,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "52911:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_a5d98768f8145ad77f2cf1b1f44790c3edb28c68feadee43b01883b75311ac0e",
																		"typeString": "literal_string \"log(address,uint,address,uint)\""
																	},
																	"value": "log(address,uint,address,uint)"
																},
																{
																	"id": 9436,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9423,
																	"src": "52945:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9437,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9425,
																	"src": "52949:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 9438,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9427,
																	"src": "52953:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9439,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9429,
																	"src": "52957:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_a5d98768f8145ad77f2cf1b1f44790c3edb28c68feadee43b01883b75311ac0e",
																		"typeString": "literal_string \"log(address,uint,address,uint)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 9433,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "52887:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9434,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "52887:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9440,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "52887:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9432,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "52871:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9441,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "52871:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9442,
												"nodeType": "ExpressionStatement",
												"src": "52871:90:12"
											}
										]
									},
									"id": 9444,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "52807:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9430,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9423,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "52819:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9444,
												"src": "52811:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9422,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "52811:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9425,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "52828:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9444,
												"src": "52823:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9424,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "52823:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9427,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "52840:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9444,
												"src": "52832:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9426,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "52832:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9429,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "52849:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9444,
												"src": "52844:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9428,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "52844:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "52810:42:12"
									},
									"returnParameters": {
										"id": 9431,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "52867:0:12"
									},
									"scope": 10618,
									"src": "52798:167:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9466,
										"nodeType": "Block",
										"src": "53046:100:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c75696e742c616464726573732c737472696e6729",
																	"id": 9458,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "53090:34:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_5d71f39ef468709ab1c82c125aa1311ff96f65f56794c27c7babe5651379e4b4",
																		"typeString": "literal_string \"log(address,uint,address,string)\""
																	},
																	"value": "log(address,uint,address,string)"
																},
																{
																	"id": 9459,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9446,
																	"src": "53126:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9460,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9448,
																	"src": "53130:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 9461,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9450,
																	"src": "53134:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9462,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9452,
																	"src": "53138:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_5d71f39ef468709ab1c82c125aa1311ff96f65f56794c27c7babe5651379e4b4",
																		"typeString": "literal_string \"log(address,uint,address,string)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 9456,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "53066:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9457,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "53066:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9463,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "53066:75:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9455,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "53050:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9464,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "53050:92:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9465,
												"nodeType": "ExpressionStatement",
												"src": "53050:92:12"
											}
										]
									},
									"id": 9467,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "52977:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9453,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9446,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "52989:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9467,
												"src": "52981:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9445,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "52981:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9448,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "52998:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9467,
												"src": "52993:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9447,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "52993:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9450,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "53010:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9467,
												"src": "53002:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9449,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "53002:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9452,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "53028:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9467,
												"src": "53014:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9451,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "53014:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "52980:51:12"
									},
									"returnParameters": {
										"id": 9454,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "53046:0:12"
									},
									"scope": 10618,
									"src": "52968:178:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9489,
										"nodeType": "Block",
										"src": "53218:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c75696e742c616464726573732c626f6f6c29",
																	"id": 9481,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "53262:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_f181a1e98aefbb6e5d63ca72f24da9aa3686f47d72314c12e70fa7843b309ee6",
																		"typeString": "literal_string \"log(address,uint,address,bool)\""
																	},
																	"value": "log(address,uint,address,bool)"
																},
																{
																	"id": 9482,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9469,
																	"src": "53296:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9483,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9471,
																	"src": "53300:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 9484,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9473,
																	"src": "53304:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9485,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9475,
																	"src": "53308:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_f181a1e98aefbb6e5d63ca72f24da9aa3686f47d72314c12e70fa7843b309ee6",
																		"typeString": "literal_string \"log(address,uint,address,bool)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 9479,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "53238:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9480,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "53238:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9486,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "53238:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9478,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "53222:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9487,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "53222:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9488,
												"nodeType": "ExpressionStatement",
												"src": "53222:90:12"
											}
										]
									},
									"id": 9490,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "53158:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9476,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9469,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "53170:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9490,
												"src": "53162:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9468,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "53162:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9471,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "53179:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9490,
												"src": "53174:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9470,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "53174:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9473,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "53191:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9490,
												"src": "53183:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9472,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "53183:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9475,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "53200:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9490,
												"src": "53195:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9474,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "53195:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "53161:42:12"
									},
									"returnParameters": {
										"id": 9477,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "53218:0:12"
									},
									"scope": 10618,
									"src": "53149:167:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9512,
										"nodeType": "Block",
										"src": "53391:101:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c75696e742c616464726573732c6164647265737329",
																	"id": 9504,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "53435:35:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_ec24846f1ed52bfa5dc64139c1bf8b03f991fdd5156eccb50dfe44ca5a2ca40e",
																		"typeString": "literal_string \"log(address,uint,address,address)\""
																	},
																	"value": "log(address,uint,address,address)"
																},
																{
																	"id": 9505,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9492,
																	"src": "53472:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9506,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9494,
																	"src": "53476:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 9507,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9496,
																	"src": "53480:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9508,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9498,
																	"src": "53484:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_ec24846f1ed52bfa5dc64139c1bf8b03f991fdd5156eccb50dfe44ca5a2ca40e",
																		"typeString": "literal_string \"log(address,uint,address,address)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 9502,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "53411:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9503,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "53411:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9509,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "53411:76:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9501,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "53395:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9510,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "53395:93:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9511,
												"nodeType": "ExpressionStatement",
												"src": "53395:93:12"
											}
										]
									},
									"id": 9513,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "53328:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9499,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9492,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "53340:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9513,
												"src": "53332:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9491,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "53332:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9494,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "53349:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9513,
												"src": "53344:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9493,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "53344:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9496,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "53361:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9513,
												"src": "53353:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9495,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "53353:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9498,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "53373:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9513,
												"src": "53365:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9497,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "53365:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "53331:45:12"
									},
									"returnParameters": {
										"id": 9500,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "53391:0:12"
									},
									"scope": 10618,
									"src": "53319:173:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9535,
										"nodeType": "Block",
										"src": "53570:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c737472696e672c75696e742c75696e7429",
																	"id": 9527,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "53614:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_a4c92a60ad8c7136a44d442238a838fba251b421248205a77f1a522d55c988af",
																		"typeString": "literal_string \"log(address,string,uint,uint)\""
																	},
																	"value": "log(address,string,uint,uint)"
																},
																{
																	"id": 9528,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9515,
																	"src": "53647:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9529,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9517,
																	"src": "53651:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 9530,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9519,
																	"src": "53655:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 9531,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9521,
																	"src": "53659:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_a4c92a60ad8c7136a44d442238a838fba251b421248205a77f1a522d55c988af",
																		"typeString": "literal_string \"log(address,string,uint,uint)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 9525,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "53590:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9526,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "53590:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9532,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "53590:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9524,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "53574:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9533,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "53574:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9534,
												"nodeType": "ExpressionStatement",
												"src": "53574:89:12"
											}
										]
									},
									"id": 9536,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "53504:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9522,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9515,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "53516:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9536,
												"src": "53508:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9514,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "53508:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9517,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "53534:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9536,
												"src": "53520:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9516,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "53520:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9519,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "53543:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9536,
												"src": "53538:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9518,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "53538:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9521,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "53552:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9536,
												"src": "53547:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9520,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "53547:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "53507:48:12"
									},
									"returnParameters": {
										"id": 9523,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "53570:0:12"
									},
									"scope": 10618,
									"src": "53495:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9558,
										"nodeType": "Block",
										"src": "53754:99:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c737472696e672c75696e742c737472696e6729",
																	"id": 9550,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "53798:33:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_5d1365c94e45374e792b786edc547d0277c401db24a4303b5dd1e8a93df0829e",
																		"typeString": "literal_string \"log(address,string,uint,string)\""
																	},
																	"value": "log(address,string,uint,string)"
																},
																{
																	"id": 9551,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9538,
																	"src": "53833:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9552,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9540,
																	"src": "53837:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 9553,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9542,
																	"src": "53841:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 9554,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9544,
																	"src": "53845:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_5d1365c94e45374e792b786edc547d0277c401db24a4303b5dd1e8a93df0829e",
																		"typeString": "literal_string \"log(address,string,uint,string)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 9548,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "53774:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9549,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "53774:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9555,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "53774:74:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9547,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "53758:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9556,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "53758:91:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9557,
												"nodeType": "ExpressionStatement",
												"src": "53758:91:12"
											}
										]
									},
									"id": 9559,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "53679:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9545,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9538,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "53691:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9559,
												"src": "53683:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9537,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "53683:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9540,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "53709:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9559,
												"src": "53695:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9539,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "53695:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9542,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "53718:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9559,
												"src": "53713:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9541,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "53713:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9544,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "53736:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9559,
												"src": "53722:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9543,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "53722:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "53682:57:12"
									},
									"returnParameters": {
										"id": 9546,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "53754:0:12"
									},
									"scope": 10618,
									"src": "53670:183:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9581,
										"nodeType": "Block",
										"src": "53931:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c737472696e672c75696e742c626f6f6c29",
																	"id": 9573,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "53975:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_7e250d5bf3975165268961c2b6dbe143f053bed03d903630f547f1fbab28b895",
																		"typeString": "literal_string \"log(address,string,uint,bool)\""
																	},
																	"value": "log(address,string,uint,bool)"
																},
																{
																	"id": 9574,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9561,
																	"src": "54008:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9575,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9563,
																	"src": "54012:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 9576,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9565,
																	"src": "54016:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 9577,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9567,
																	"src": "54020:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_7e250d5bf3975165268961c2b6dbe143f053bed03d903630f547f1fbab28b895",
																		"typeString": "literal_string \"log(address,string,uint,bool)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 9571,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "53951:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9572,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "53951:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9578,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "53951:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9570,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "53935:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9579,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "53935:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9580,
												"nodeType": "ExpressionStatement",
												"src": "53935:89:12"
											}
										]
									},
									"id": 9582,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "53865:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9568,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9561,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "53877:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9582,
												"src": "53869:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9560,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "53869:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9563,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "53895:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9582,
												"src": "53881:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9562,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "53881:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9565,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "53904:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9582,
												"src": "53899:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9564,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "53899:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9567,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "53913:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9582,
												"src": "53908:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9566,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "53908:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "53868:48:12"
									},
									"returnParameters": {
										"id": 9569,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "53931:0:12"
									},
									"scope": 10618,
									"src": "53856:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9604,
										"nodeType": "Block",
										"src": "54109:100:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c737472696e672c75696e742c6164647265737329",
																	"id": 9596,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "54153:34:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_dfd7d80b4150ea6b0b2772758d6e66d8c7f141bfd7de11119a8fee2a703664e4",
																		"typeString": "literal_string \"log(address,string,uint,address)\""
																	},
																	"value": "log(address,string,uint,address)"
																},
																{
																	"id": 9597,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9584,
																	"src": "54189:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9598,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9586,
																	"src": "54193:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 9599,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9588,
																	"src": "54197:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 9600,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9590,
																	"src": "54201:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_dfd7d80b4150ea6b0b2772758d6e66d8c7f141bfd7de11119a8fee2a703664e4",
																		"typeString": "literal_string \"log(address,string,uint,address)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 9594,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "54129:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9595,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "54129:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9601,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "54129:75:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9593,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "54113:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9602,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "54113:92:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9603,
												"nodeType": "ExpressionStatement",
												"src": "54113:92:12"
											}
										]
									},
									"id": 9605,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "54040:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9591,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9584,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "54052:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9605,
												"src": "54044:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9583,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "54044:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9586,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "54070:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9605,
												"src": "54056:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9585,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "54056:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9588,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "54079:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9605,
												"src": "54074:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9587,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "54074:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9590,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "54091:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9605,
												"src": "54083:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9589,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "54083:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "54043:51:12"
									},
									"returnParameters": {
										"id": 9592,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "54109:0:12"
									},
									"scope": 10618,
									"src": "54031:178:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9627,
										"nodeType": "Block",
										"src": "54296:99:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c737472696e672c737472696e672c75696e7429",
																	"id": 9619,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "54340:33:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_a14fd039ae37435afa9d1674d6d48b37ffbd5da4cd9166a3f673f5f0db01a4c5",
																		"typeString": "literal_string \"log(address,string,string,uint)\""
																	},
																	"value": "log(address,string,string,uint)"
																},
																{
																	"id": 9620,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9607,
																	"src": "54375:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9621,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9609,
																	"src": "54379:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 9622,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9611,
																	"src": "54383:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 9623,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9613,
																	"src": "54387:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_a14fd039ae37435afa9d1674d6d48b37ffbd5da4cd9166a3f673f5f0db01a4c5",
																		"typeString": "literal_string \"log(address,string,string,uint)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 9617,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "54316:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9618,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "54316:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9624,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "54316:74:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9616,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "54300:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9625,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "54300:91:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9626,
												"nodeType": "ExpressionStatement",
												"src": "54300:91:12"
											}
										]
									},
									"id": 9628,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "54221:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9614,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9607,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "54233:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9628,
												"src": "54225:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9606,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "54225:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9609,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "54251:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9628,
												"src": "54237:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9608,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "54237:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9611,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "54269:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9628,
												"src": "54255:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9610,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "54255:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9613,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "54278:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9628,
												"src": "54273:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9612,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "54273:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "54224:57:12"
									},
									"returnParameters": {
										"id": 9615,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "54296:0:12"
									},
									"scope": 10618,
									"src": "54212:183:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9650,
										"nodeType": "Block",
										"src": "54491:101:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c737472696e672c737472696e672c737472696e6729",
																	"id": 9642,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "54535:35:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_5d02c50b371ad9a1f5c638dc99b5e9b545011f148f0be5233c530a4b2a12665c",
																		"typeString": "literal_string \"log(address,string,string,string)\""
																	},
																	"value": "log(address,string,string,string)"
																},
																{
																	"id": 9643,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9630,
																	"src": "54572:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9644,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9632,
																	"src": "54576:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 9645,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9634,
																	"src": "54580:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 9646,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9636,
																	"src": "54584:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_5d02c50b371ad9a1f5c638dc99b5e9b545011f148f0be5233c530a4b2a12665c",
																		"typeString": "literal_string \"log(address,string,string,string)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 9640,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "54511:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9641,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "54511:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9647,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "54511:76:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9639,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "54495:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9648,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "54495:93:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9649,
												"nodeType": "ExpressionStatement",
												"src": "54495:93:12"
											}
										]
									},
									"id": 9651,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "54407:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9637,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9630,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "54419:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9651,
												"src": "54411:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9629,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "54411:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9632,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "54437:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9651,
												"src": "54423:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9631,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "54423:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9634,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "54455:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9651,
												"src": "54441:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9633,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "54441:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9636,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "54473:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9651,
												"src": "54459:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9635,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "54459:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "54410:66:12"
									},
									"returnParameters": {
										"id": 9638,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "54491:0:12"
									},
									"scope": 10618,
									"src": "54398:194:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9673,
										"nodeType": "Block",
										"src": "54679:99:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c737472696e672c737472696e672c626f6f6c29",
																	"id": 9665,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "54723:33:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_35a5071fa9f4610e50772083182f21e949e7a02301a3936e315dd1c4fc39a9ed",
																		"typeString": "literal_string \"log(address,string,string,bool)\""
																	},
																	"value": "log(address,string,string,bool)"
																},
																{
																	"id": 9666,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9653,
																	"src": "54758:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9667,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9655,
																	"src": "54762:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 9668,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9657,
																	"src": "54766:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 9669,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9659,
																	"src": "54770:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_35a5071fa9f4610e50772083182f21e949e7a02301a3936e315dd1c4fc39a9ed",
																		"typeString": "literal_string \"log(address,string,string,bool)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 9663,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "54699:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9664,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "54699:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9670,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "54699:74:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9662,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "54683:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9671,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "54683:91:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9672,
												"nodeType": "ExpressionStatement",
												"src": "54683:91:12"
											}
										]
									},
									"id": 9674,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "54604:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9660,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9653,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "54616:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9674,
												"src": "54608:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9652,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "54608:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9655,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "54634:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9674,
												"src": "54620:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9654,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "54620:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9657,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "54652:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9674,
												"src": "54638:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9656,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "54638:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9659,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "54661:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9674,
												"src": "54656:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9658,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "54656:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "54607:57:12"
									},
									"returnParameters": {
										"id": 9661,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "54679:0:12"
									},
									"scope": 10618,
									"src": "54595:183:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9696,
										"nodeType": "Block",
										"src": "54868:102:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c737472696e672c737472696e672c6164647265737329",
																	"id": 9688,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "54912:36:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_a04e2f87a739673cc9223810c24b00b35c6b2c9f3ef123cc82866752e1fa816f",
																		"typeString": "literal_string \"log(address,string,string,address)\""
																	},
																	"value": "log(address,string,string,address)"
																},
																{
																	"id": 9689,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9676,
																	"src": "54950:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9690,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9678,
																	"src": "54954:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 9691,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9680,
																	"src": "54958:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 9692,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9682,
																	"src": "54962:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_a04e2f87a739673cc9223810c24b00b35c6b2c9f3ef123cc82866752e1fa816f",
																		"typeString": "literal_string \"log(address,string,string,address)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 9686,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "54888:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9687,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "54888:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9693,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "54888:77:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9685,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "54872:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9694,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "54872:94:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9695,
												"nodeType": "ExpressionStatement",
												"src": "54872:94:12"
											}
										]
									},
									"id": 9697,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "54790:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9683,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9676,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "54802:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9697,
												"src": "54794:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9675,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "54794:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9678,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "54820:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9697,
												"src": "54806:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9677,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "54806:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9680,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "54838:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9697,
												"src": "54824:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9679,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "54824:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9682,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "54850:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9697,
												"src": "54842:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9681,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "54842:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "54793:60:12"
									},
									"returnParameters": {
										"id": 9684,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "54868:0:12"
									},
									"scope": 10618,
									"src": "54781:189:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9719,
										"nodeType": "Block",
										"src": "55048:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c737472696e672c626f6f6c2c75696e7429",
																	"id": 9711,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "55092:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_e720521cc58e36659b0c45689a38054bd7300ff30d5ec0cfec7bae3dc2e9689a",
																		"typeString": "literal_string \"log(address,string,bool,uint)\""
																	},
																	"value": "log(address,string,bool,uint)"
																},
																{
																	"id": 9712,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9699,
																	"src": "55125:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9713,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9701,
																	"src": "55129:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 9714,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9703,
																	"src": "55133:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 9715,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9705,
																	"src": "55137:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_e720521cc58e36659b0c45689a38054bd7300ff30d5ec0cfec7bae3dc2e9689a",
																		"typeString": "literal_string \"log(address,string,bool,uint)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 9709,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "55068:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9710,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "55068:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9716,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "55068:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9708,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "55052:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9717,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "55052:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9718,
												"nodeType": "ExpressionStatement",
												"src": "55052:89:12"
											}
										]
									},
									"id": 9720,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "54982:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9706,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9699,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "54994:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9720,
												"src": "54986:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9698,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "54986:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9701,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "55012:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9720,
												"src": "54998:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9700,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "54998:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9703,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "55021:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9720,
												"src": "55016:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9702,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "55016:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9705,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "55030:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9720,
												"src": "55025:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9704,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "55025:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "54985:48:12"
									},
									"returnParameters": {
										"id": 9707,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "55048:0:12"
									},
									"scope": 10618,
									"src": "54973:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9742,
										"nodeType": "Block",
										"src": "55232:99:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c737472696e672c626f6f6c2c737472696e6729",
																	"id": 9734,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "55276:33:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_bc0b61fe9497b47eb6a51a5a6a4bf26b32ddcbc9407ccae8cc7de64b3e3d84cc",
																		"typeString": "literal_string \"log(address,string,bool,string)\""
																	},
																	"value": "log(address,string,bool,string)"
																},
																{
																	"id": 9735,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9722,
																	"src": "55311:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9736,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9724,
																	"src": "55315:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 9737,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9726,
																	"src": "55319:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 9738,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9728,
																	"src": "55323:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_bc0b61fe9497b47eb6a51a5a6a4bf26b32ddcbc9407ccae8cc7de64b3e3d84cc",
																		"typeString": "literal_string \"log(address,string,bool,string)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 9732,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "55252:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9733,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "55252:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9739,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "55252:74:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9731,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "55236:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9740,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "55236:91:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9741,
												"nodeType": "ExpressionStatement",
												"src": "55236:91:12"
											}
										]
									},
									"id": 9743,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "55157:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9729,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9722,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "55169:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9743,
												"src": "55161:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9721,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "55161:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9724,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "55187:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9743,
												"src": "55173:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9723,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "55173:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9726,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "55196:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9743,
												"src": "55191:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9725,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "55191:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9728,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "55214:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9743,
												"src": "55200:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9727,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "55200:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "55160:57:12"
									},
									"returnParameters": {
										"id": 9730,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "55232:0:12"
									},
									"scope": 10618,
									"src": "55148:183:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9765,
										"nodeType": "Block",
										"src": "55409:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c737472696e672c626f6f6c2c626f6f6c29",
																	"id": 9757,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "55453:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_5f1d5c9f0de8c048364058d1d6842804ada33dbc34bf9eaff8f2be978f384e08",
																		"typeString": "literal_string \"log(address,string,bool,bool)\""
																	},
																	"value": "log(address,string,bool,bool)"
																},
																{
																	"id": 9758,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9745,
																	"src": "55486:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9759,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9747,
																	"src": "55490:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 9760,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9749,
																	"src": "55494:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 9761,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9751,
																	"src": "55498:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_5f1d5c9f0de8c048364058d1d6842804ada33dbc34bf9eaff8f2be978f384e08",
																		"typeString": "literal_string \"log(address,string,bool,bool)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 9755,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "55429:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9756,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "55429:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9762,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "55429:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9754,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "55413:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9763,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "55413:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9764,
												"nodeType": "ExpressionStatement",
												"src": "55413:89:12"
											}
										]
									},
									"id": 9766,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "55343:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9752,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9745,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "55355:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9766,
												"src": "55347:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9744,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "55347:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9747,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "55373:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9766,
												"src": "55359:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9746,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "55359:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9749,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "55382:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9766,
												"src": "55377:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9748,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "55377:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9751,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "55391:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9766,
												"src": "55386:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9750,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "55386:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "55346:48:12"
									},
									"returnParameters": {
										"id": 9753,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "55409:0:12"
									},
									"scope": 10618,
									"src": "55334:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9788,
										"nodeType": "Block",
										"src": "55587:100:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c737472696e672c626f6f6c2c6164647265737329",
																	"id": 9780,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "55631:34:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_205871c2f2d320acdd350939b5fc035cc20b1a9cc058fb26f1c9fb3d2ba59970",
																		"typeString": "literal_string \"log(address,string,bool,address)\""
																	},
																	"value": "log(address,string,bool,address)"
																},
																{
																	"id": 9781,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9768,
																	"src": "55667:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9782,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9770,
																	"src": "55671:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 9783,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9772,
																	"src": "55675:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 9784,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9774,
																	"src": "55679:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_205871c2f2d320acdd350939b5fc035cc20b1a9cc058fb26f1c9fb3d2ba59970",
																		"typeString": "literal_string \"log(address,string,bool,address)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 9778,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "55607:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9779,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "55607:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9785,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "55607:75:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9777,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "55591:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9786,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "55591:92:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9787,
												"nodeType": "ExpressionStatement",
												"src": "55591:92:12"
											}
										]
									},
									"id": 9789,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "55518:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9775,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9768,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "55530:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9789,
												"src": "55522:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9767,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "55522:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9770,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "55548:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9789,
												"src": "55534:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9769,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "55534:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9772,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "55557:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9789,
												"src": "55552:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9771,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "55552:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9774,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "55569:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9789,
												"src": "55561:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9773,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "55561:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "55521:51:12"
									},
									"returnParameters": {
										"id": 9776,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "55587:0:12"
									},
									"scope": 10618,
									"src": "55509:178:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9811,
										"nodeType": "Block",
										"src": "55768:100:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c737472696e672c616464726573732c75696e7429",
																	"id": 9803,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "55812:34:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_8c1933a9a9c61e3dc8d3ebdfa929712b21dab3dcf7188e7d35cbf8aaaf476582",
																		"typeString": "literal_string \"log(address,string,address,uint)\""
																	},
																	"value": "log(address,string,address,uint)"
																},
																{
																	"id": 9804,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9791,
																	"src": "55848:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9805,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9793,
																	"src": "55852:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 9806,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9795,
																	"src": "55856:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9807,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9797,
																	"src": "55860:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_8c1933a9a9c61e3dc8d3ebdfa929712b21dab3dcf7188e7d35cbf8aaaf476582",
																		"typeString": "literal_string \"log(address,string,address,uint)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 9801,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "55788:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9802,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "55788:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9808,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "55788:75:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9800,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "55772:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9809,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "55772:92:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9810,
												"nodeType": "ExpressionStatement",
												"src": "55772:92:12"
											}
										]
									},
									"id": 9812,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "55699:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9798,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9791,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "55711:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9812,
												"src": "55703:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9790,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "55703:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9793,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "55729:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9812,
												"src": "55715:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9792,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "55715:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9795,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "55741:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9812,
												"src": "55733:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9794,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "55733:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9797,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "55750:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9812,
												"src": "55745:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9796,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "55745:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "55702:51:12"
									},
									"returnParameters": {
										"id": 9799,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "55768:0:12"
									},
									"scope": 10618,
									"src": "55690:178:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9834,
										"nodeType": "Block",
										"src": "55958:102:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c737472696e672c616464726573732c737472696e6729",
																	"id": 9826,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "56002:36:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_f7e3624510fc5618feb98a49f5d4404e3749dacbdc916c267fea7b2051a08dea",
																		"typeString": "literal_string \"log(address,string,address,string)\""
																	},
																	"value": "log(address,string,address,string)"
																},
																{
																	"id": 9827,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9814,
																	"src": "56040:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9828,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9816,
																	"src": "56044:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 9829,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9818,
																	"src": "56048:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9830,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9820,
																	"src": "56052:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_f7e3624510fc5618feb98a49f5d4404e3749dacbdc916c267fea7b2051a08dea",
																		"typeString": "literal_string \"log(address,string,address,string)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 9824,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "55978:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9825,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "55978:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9831,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "55978:77:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9823,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "55962:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9832,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "55962:94:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9833,
												"nodeType": "ExpressionStatement",
												"src": "55962:94:12"
											}
										]
									},
									"id": 9835,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "55880:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9821,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9814,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "55892:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9835,
												"src": "55884:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9813,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "55884:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9816,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "55910:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9835,
												"src": "55896:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9815,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "55896:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9818,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "55922:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9835,
												"src": "55914:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9817,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "55914:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9820,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "55940:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9835,
												"src": "55926:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9819,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "55926:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "55883:60:12"
									},
									"returnParameters": {
										"id": 9822,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "55958:0:12"
									},
									"scope": 10618,
									"src": "55871:189:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9857,
										"nodeType": "Block",
										"src": "56141:100:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c737472696e672c616464726573732c626f6f6c29",
																	"id": 9849,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "56185:34:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_0df12b7620e0bad204ac79fe9930fef9b9a40702161764a681594d50d657b081",
																		"typeString": "literal_string \"log(address,string,address,bool)\""
																	},
																	"value": "log(address,string,address,bool)"
																},
																{
																	"id": 9850,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9837,
																	"src": "56221:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9851,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9839,
																	"src": "56225:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 9852,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9841,
																	"src": "56229:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9853,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9843,
																	"src": "56233:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_0df12b7620e0bad204ac79fe9930fef9b9a40702161764a681594d50d657b081",
																		"typeString": "literal_string \"log(address,string,address,bool)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 9847,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "56161:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9848,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "56161:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9854,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "56161:75:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9846,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "56145:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9855,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "56145:92:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9856,
												"nodeType": "ExpressionStatement",
												"src": "56145:92:12"
											}
										]
									},
									"id": 9858,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "56072:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9844,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9837,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "56084:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9858,
												"src": "56076:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9836,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "56076:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9839,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "56102:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9858,
												"src": "56088:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9838,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "56088:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9841,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "56114:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9858,
												"src": "56106:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9840,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "56106:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9843,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "56123:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9858,
												"src": "56118:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9842,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "56118:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "56075:51:12"
									},
									"returnParameters": {
										"id": 9845,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "56141:0:12"
									},
									"scope": 10618,
									"src": "56063:178:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9880,
										"nodeType": "Block",
										"src": "56325:103:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c737472696e672c616464726573732c6164647265737329",
																	"id": 9872,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "56369:37:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_0d36fa2022fafb45586a59914be3ad4c57b76e89535385dcff89c28c80605121",
																		"typeString": "literal_string \"log(address,string,address,address)\""
																	},
																	"value": "log(address,string,address,address)"
																},
																{
																	"id": 9873,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9860,
																	"src": "56408:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9874,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9862,
																	"src": "56412:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 9875,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9864,
																	"src": "56416:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9876,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9866,
																	"src": "56420:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_0d36fa2022fafb45586a59914be3ad4c57b76e89535385dcff89c28c80605121",
																		"typeString": "literal_string \"log(address,string,address,address)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 9870,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "56345:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9871,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "56345:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9877,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "56345:78:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9869,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "56329:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9878,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "56329:95:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9879,
												"nodeType": "ExpressionStatement",
												"src": "56329:95:12"
											}
										]
									},
									"id": 9881,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "56253:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9867,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9860,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "56265:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9881,
												"src": "56257:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9859,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "56257:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9862,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "56283:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9881,
												"src": "56269:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9861,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "56269:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9864,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "56295:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9881,
												"src": "56287:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9863,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "56287:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9866,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "56307:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9881,
												"src": "56299:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9865,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "56299:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "56256:54:12"
									},
									"returnParameters": {
										"id": 9868,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "56325:0:12"
									},
									"scope": 10618,
									"src": "56244:184:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9903,
										"nodeType": "Block",
										"src": "56497:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c626f6f6c2c75696e742c75696e7429",
																	"id": 9895,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "56541:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_c210a01e60a7d88137859e75abc2d14430087408747ac6787f0acb2f0f8bfd59",
																		"typeString": "literal_string \"log(address,bool,uint,uint)\""
																	},
																	"value": "log(address,bool,uint,uint)"
																},
																{
																	"id": 9896,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9883,
																	"src": "56572:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9897,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9885,
																	"src": "56576:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 9898,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9887,
																	"src": "56580:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 9899,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9889,
																	"src": "56584:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_c210a01e60a7d88137859e75abc2d14430087408747ac6787f0acb2f0f8bfd59",
																		"typeString": "literal_string \"log(address,bool,uint,uint)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 9893,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "56517:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9894,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "56517:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9900,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "56517:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9892,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "56501:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9901,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "56501:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9902,
												"nodeType": "ExpressionStatement",
												"src": "56501:87:12"
											}
										]
									},
									"id": 9904,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "56440:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9890,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9883,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "56452:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9904,
												"src": "56444:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9882,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "56444:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9885,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "56461:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9904,
												"src": "56456:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9884,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "56456:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9887,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "56470:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9904,
												"src": "56465:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9886,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "56465:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9889,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "56479:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9904,
												"src": "56474:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9888,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "56474:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "56443:39:12"
									},
									"returnParameters": {
										"id": 9891,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "56497:0:12"
									},
									"scope": 10618,
									"src": "56431:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9926,
										"nodeType": "Block",
										"src": "56670:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c626f6f6c2c75696e742c737472696e6729",
																	"id": 9918,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "56714:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_9b588eccef132ec49572951d33e9b0d1b814d54c82133831f78cdc5d923bc6e6",
																		"typeString": "literal_string \"log(address,bool,uint,string)\""
																	},
																	"value": "log(address,bool,uint,string)"
																},
																{
																	"id": 9919,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9906,
																	"src": "56747:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9920,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9908,
																	"src": "56751:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 9921,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9910,
																	"src": "56755:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 9922,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9912,
																	"src": "56759:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_9b588eccef132ec49572951d33e9b0d1b814d54c82133831f78cdc5d923bc6e6",
																		"typeString": "literal_string \"log(address,bool,uint,string)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 9916,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "56690:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9917,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "56690:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9923,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "56690:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9915,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "56674:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9924,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "56674:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9925,
												"nodeType": "ExpressionStatement",
												"src": "56674:89:12"
											}
										]
									},
									"id": 9927,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "56604:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9913,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9906,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "56616:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9927,
												"src": "56608:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9905,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "56608:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9908,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "56625:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9927,
												"src": "56620:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9907,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "56620:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9910,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "56634:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9927,
												"src": "56629:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9909,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "56629:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9912,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "56652:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9927,
												"src": "56638:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9911,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "56638:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "56607:48:12"
									},
									"returnParameters": {
										"id": 9914,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "56670:0:12"
									},
									"scope": 10618,
									"src": "56595:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9949,
										"nodeType": "Block",
										"src": "56836:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c626f6f6c2c75696e742c626f6f6c29",
																	"id": 9941,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "56880:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_85cdc5af22f2a2b52749c228b5bc379bac815d0d3575c2899b6657bce00fab33",
																		"typeString": "literal_string \"log(address,bool,uint,bool)\""
																	},
																	"value": "log(address,bool,uint,bool)"
																},
																{
																	"id": 9942,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9929,
																	"src": "56911:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9943,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9931,
																	"src": "56915:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 9944,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9933,
																	"src": "56919:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 9945,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9935,
																	"src": "56923:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_85cdc5af22f2a2b52749c228b5bc379bac815d0d3575c2899b6657bce00fab33",
																		"typeString": "literal_string \"log(address,bool,uint,bool)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 9939,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "56856:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9940,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "56856:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9946,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "56856:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9938,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "56840:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9947,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "56840:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9948,
												"nodeType": "ExpressionStatement",
												"src": "56840:87:12"
											}
										]
									},
									"id": 9950,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "56779:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9936,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9929,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "56791:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9950,
												"src": "56783:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9928,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "56783:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9931,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "56800:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9950,
												"src": "56795:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9930,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "56795:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9933,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "56809:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9950,
												"src": "56804:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9932,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "56804:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9935,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "56818:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9950,
												"src": "56813:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9934,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "56813:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "56782:39:12"
									},
									"returnParameters": {
										"id": 9937,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "56836:0:12"
									},
									"scope": 10618,
									"src": "56770:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9972,
										"nodeType": "Block",
										"src": "57003:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c626f6f6c2c75696e742c6164647265737329",
																	"id": 9964,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "57047:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_0d8ce61ee7d058fd1e588343a35fb1aff71b8e7f74d553220d0e20088cb908bf",
																		"typeString": "literal_string \"log(address,bool,uint,address)\""
																	},
																	"value": "log(address,bool,uint,address)"
																},
																{
																	"id": 9965,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9952,
																	"src": "57081:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9966,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9954,
																	"src": "57085:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 9967,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9956,
																	"src": "57089:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 9968,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9958,
																	"src": "57093:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_0d8ce61ee7d058fd1e588343a35fb1aff71b8e7f74d553220d0e20088cb908bf",
																		"typeString": "literal_string \"log(address,bool,uint,address)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 9962,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "57023:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9963,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "57023:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9969,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "57023:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9961,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "57007:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9970,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "57007:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9971,
												"nodeType": "ExpressionStatement",
												"src": "57007:90:12"
											}
										]
									},
									"id": 9973,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "56943:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9959,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9952,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "56955:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9973,
												"src": "56947:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9951,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "56947:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9954,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "56964:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9973,
												"src": "56959:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9953,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "56959:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9956,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "56973:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9973,
												"src": "56968:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9955,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "56968:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9958,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "56985:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9973,
												"src": "56977:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9957,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "56977:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "56946:42:12"
									},
									"returnParameters": {
										"id": 9960,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "57003:0:12"
									},
									"scope": 10618,
									"src": "56934:167:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 9995,
										"nodeType": "Block",
										"src": "57179:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c626f6f6c2c737472696e672c75696e7429",
																	"id": 9987,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "57223:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_9e127b6e4348bc33b3ea7f05f6479d3e1b1fe2b3727e1f4ba94b6a36e7abac9b",
																		"typeString": "literal_string \"log(address,bool,string,uint)\""
																	},
																	"value": "log(address,bool,string,uint)"
																},
																{
																	"id": 9988,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9975,
																	"src": "57256:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 9989,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9977,
																	"src": "57260:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 9990,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9979,
																	"src": "57264:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 9991,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9981,
																	"src": "57268:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_9e127b6e4348bc33b3ea7f05f6479d3e1b1fe2b3727e1f4ba94b6a36e7abac9b",
																		"typeString": "literal_string \"log(address,bool,string,uint)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 9985,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "57199:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 9986,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "57199:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 9992,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "57199:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 9984,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "57183:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 9993,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "57183:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 9994,
												"nodeType": "ExpressionStatement",
												"src": "57183:89:12"
											}
										]
									},
									"id": 9996,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "57113:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 9982,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9975,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "57125:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9996,
												"src": "57117:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9974,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "57117:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9977,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "57134:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9996,
												"src": "57129:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9976,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "57129:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9979,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "57152:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9996,
												"src": "57138:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 9978,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "57138:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 9981,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "57161:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 9996,
												"src": "57156:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 9980,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "57156:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "57116:48:12"
									},
									"returnParameters": {
										"id": 9983,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "57179:0:12"
									},
									"scope": 10618,
									"src": "57104:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 10018,
										"nodeType": "Block",
										"src": "57363:99:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c626f6f6c2c737472696e672c737472696e6729",
																	"id": 10010,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "57407:33:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_475c5c33f91155b7a0e86c9fac7985c60ab58f4bfb411ee9b31d994a7fc95d1f",
																		"typeString": "literal_string \"log(address,bool,string,string)\""
																	},
																	"value": "log(address,bool,string,string)"
																},
																{
																	"id": 10011,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 9998,
																	"src": "57442:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10012,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10000,
																	"src": "57446:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 10013,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10002,
																	"src": "57450:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 10014,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10004,
																	"src": "57454:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_475c5c33f91155b7a0e86c9fac7985c60ab58f4bfb411ee9b31d994a7fc95d1f",
																		"typeString": "literal_string \"log(address,bool,string,string)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 10008,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "57383:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 10009,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "57383:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 10015,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "57383:74:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 10007,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "57367:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 10016,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "57367:91:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10017,
												"nodeType": "ExpressionStatement",
												"src": "57367:91:12"
											}
										]
									},
									"id": 10019,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "57288:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10005,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9998,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "57300:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10019,
												"src": "57292:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 9997,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "57292:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10000,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "57309:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10019,
												"src": "57304:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 9999,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "57304:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10002,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "57327:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10019,
												"src": "57313:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 10001,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "57313:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10004,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "57345:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10019,
												"src": "57331:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 10003,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "57331:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "57291:57:12"
									},
									"returnParameters": {
										"id": 10006,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "57363:0:12"
									},
									"scope": 10618,
									"src": "57279:183:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 10041,
										"nodeType": "Block",
										"src": "57540:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c626f6f6c2c737472696e672c626f6f6c29",
																	"id": 10033,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "57584:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_50ad461db24803fc9b2ba76f072192e0a4d8fbb3667a50c400f504443380890f",
																		"typeString": "literal_string \"log(address,bool,string,bool)\""
																	},
																	"value": "log(address,bool,string,bool)"
																},
																{
																	"id": 10034,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10021,
																	"src": "57617:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10035,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10023,
																	"src": "57621:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 10036,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10025,
																	"src": "57625:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 10037,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10027,
																	"src": "57629:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_50ad461db24803fc9b2ba76f072192e0a4d8fbb3667a50c400f504443380890f",
																		"typeString": "literal_string \"log(address,bool,string,bool)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 10031,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "57560:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 10032,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "57560:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 10038,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "57560:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 10030,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "57544:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 10039,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "57544:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10040,
												"nodeType": "ExpressionStatement",
												"src": "57544:89:12"
											}
										]
									},
									"id": 10042,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "57474:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10028,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10021,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "57486:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10042,
												"src": "57478:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10020,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "57478:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10023,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "57495:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10042,
												"src": "57490:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 10022,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "57490:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10025,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "57513:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10042,
												"src": "57499:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 10024,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "57499:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10027,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "57522:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10042,
												"src": "57517:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 10026,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "57517:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "57477:48:12"
									},
									"returnParameters": {
										"id": 10029,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "57540:0:12"
									},
									"scope": 10618,
									"src": "57465:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 10064,
										"nodeType": "Block",
										"src": "57718:100:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c626f6f6c2c737472696e672c6164647265737329",
																	"id": 10056,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "57762:34:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_19fd495659df511498cf8dde03672830bd109ef2d9b9bec18e72190917c328bc",
																		"typeString": "literal_string \"log(address,bool,string,address)\""
																	},
																	"value": "log(address,bool,string,address)"
																},
																{
																	"id": 10057,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10044,
																	"src": "57798:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10058,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10046,
																	"src": "57802:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 10059,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10048,
																	"src": "57806:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 10060,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10050,
																	"src": "57810:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_19fd495659df511498cf8dde03672830bd109ef2d9b9bec18e72190917c328bc",
																		"typeString": "literal_string \"log(address,bool,string,address)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 10054,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "57738:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 10055,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "57738:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 10061,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "57738:75:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 10053,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "57722:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 10062,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "57722:92:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10063,
												"nodeType": "ExpressionStatement",
												"src": "57722:92:12"
											}
										]
									},
									"id": 10065,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "57649:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10051,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10044,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "57661:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10065,
												"src": "57653:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10043,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "57653:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10046,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "57670:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10065,
												"src": "57665:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 10045,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "57665:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10048,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "57688:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10065,
												"src": "57674:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 10047,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "57674:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10050,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "57700:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10065,
												"src": "57692:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10049,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "57692:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "57652:51:12"
									},
									"returnParameters": {
										"id": 10052,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "57718:0:12"
									},
									"scope": 10618,
									"src": "57640:178:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 10087,
										"nodeType": "Block",
										"src": "57887:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c626f6f6c2c626f6f6c2c75696e7429",
																	"id": 10079,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "57931:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_cfb587569c9e063cd7daed07e27d9193980aad24c48787cb6531c47fa694e463",
																		"typeString": "literal_string \"log(address,bool,bool,uint)\""
																	},
																	"value": "log(address,bool,bool,uint)"
																},
																{
																	"id": 10080,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10067,
																	"src": "57962:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10081,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10069,
																	"src": "57966:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 10082,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10071,
																	"src": "57970:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 10083,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10073,
																	"src": "57974:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_cfb587569c9e063cd7daed07e27d9193980aad24c48787cb6531c47fa694e463",
																		"typeString": "literal_string \"log(address,bool,bool,uint)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 10077,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "57907:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 10078,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "57907:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 10084,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "57907:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 10076,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "57891:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 10085,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "57891:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10086,
												"nodeType": "ExpressionStatement",
												"src": "57891:87:12"
											}
										]
									},
									"id": 10088,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "57830:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10074,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10067,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "57842:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10088,
												"src": "57834:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10066,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "57834:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10069,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "57851:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10088,
												"src": "57846:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 10068,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "57846:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10071,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "57860:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10088,
												"src": "57855:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 10070,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "57855:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10073,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "57869:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10088,
												"src": "57864:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 10072,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "57864:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "57833:39:12"
									},
									"returnParameters": {
										"id": 10075,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "57887:0:12"
									},
									"scope": 10618,
									"src": "57821:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 10110,
										"nodeType": "Block",
										"src": "58060:97:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c626f6f6c2c626f6f6c2c737472696e6729",
																	"id": 10102,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "58104:31:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_dfc4a2e8c56809b44edbbc6d92d0a8441e551ad5387596bf8b629c56d9a91300",
																		"typeString": "literal_string \"log(address,bool,bool,string)\""
																	},
																	"value": "log(address,bool,bool,string)"
																},
																{
																	"id": 10103,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10090,
																	"src": "58137:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10104,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10092,
																	"src": "58141:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 10105,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10094,
																	"src": "58145:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 10106,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10096,
																	"src": "58149:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_dfc4a2e8c56809b44edbbc6d92d0a8441e551ad5387596bf8b629c56d9a91300",
																		"typeString": "literal_string \"log(address,bool,bool,string)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 10100,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "58080:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 10101,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "58080:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 10107,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "58080:72:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 10099,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "58064:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 10108,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "58064:89:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10109,
												"nodeType": "ExpressionStatement",
												"src": "58064:89:12"
											}
										]
									},
									"id": 10111,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "57994:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10097,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10090,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "58006:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10111,
												"src": "57998:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10089,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "57998:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10092,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "58015:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10111,
												"src": "58010:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 10091,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "58010:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10094,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "58024:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10111,
												"src": "58019:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 10093,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "58019:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10096,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "58042:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10111,
												"src": "58028:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 10095,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "58028:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "57997:48:12"
									},
									"returnParameters": {
										"id": 10098,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "58060:0:12"
									},
									"scope": 10618,
									"src": "57985:172:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 10133,
										"nodeType": "Block",
										"src": "58226:95:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c626f6f6c2c626f6f6c2c626f6f6c29",
																	"id": 10125,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "58270:29:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_cac434792b973db16714db96d2aeda353b2253f27255abe42b9960b2dc550634",
																		"typeString": "literal_string \"log(address,bool,bool,bool)\""
																	},
																	"value": "log(address,bool,bool,bool)"
																},
																{
																	"id": 10126,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10113,
																	"src": "58301:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10127,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10115,
																	"src": "58305:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 10128,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10117,
																	"src": "58309:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 10129,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10119,
																	"src": "58313:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_cac434792b973db16714db96d2aeda353b2253f27255abe42b9960b2dc550634",
																		"typeString": "literal_string \"log(address,bool,bool,bool)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 10123,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "58246:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 10124,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "58246:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 10130,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "58246:70:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 10122,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "58230:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 10131,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "58230:87:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10132,
												"nodeType": "ExpressionStatement",
												"src": "58230:87:12"
											}
										]
									},
									"id": 10134,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "58169:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10120,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10113,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "58181:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10134,
												"src": "58173:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10112,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "58173:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10115,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "58190:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10134,
												"src": "58185:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 10114,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "58185:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10117,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "58199:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10134,
												"src": "58194:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 10116,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "58194:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10119,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "58208:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10134,
												"src": "58203:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 10118,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "58203:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "58172:39:12"
									},
									"returnParameters": {
										"id": 10121,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "58226:0:12"
									},
									"scope": 10618,
									"src": "58160:161:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 10156,
										"nodeType": "Block",
										"src": "58393:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c626f6f6c2c626f6f6c2c6164647265737329",
																	"id": 10148,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "58437:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_cf394485abbd1f04b85b0f2c1a2cfc07e3d51c1c6f28386bf16d9e45161e8953",
																		"typeString": "literal_string \"log(address,bool,bool,address)\""
																	},
																	"value": "log(address,bool,bool,address)"
																},
																{
																	"id": 10149,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10136,
																	"src": "58471:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10150,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10138,
																	"src": "58475:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 10151,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10140,
																	"src": "58479:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 10152,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10142,
																	"src": "58483:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_cf394485abbd1f04b85b0f2c1a2cfc07e3d51c1c6f28386bf16d9e45161e8953",
																		"typeString": "literal_string \"log(address,bool,bool,address)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 10146,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "58413:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 10147,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "58413:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 10153,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "58413:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 10145,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "58397:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 10154,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "58397:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10155,
												"nodeType": "ExpressionStatement",
												"src": "58397:90:12"
											}
										]
									},
									"id": 10157,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "58333:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10143,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10136,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "58345:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10157,
												"src": "58337:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10135,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "58337:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10138,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "58354:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10157,
												"src": "58349:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 10137,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "58349:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10140,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "58363:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10157,
												"src": "58358:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 10139,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "58358:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10142,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "58375:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10157,
												"src": "58367:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10141,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "58367:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "58336:42:12"
									},
									"returnParameters": {
										"id": 10144,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "58393:0:12"
									},
									"scope": 10618,
									"src": "58324:167:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 10179,
										"nodeType": "Block",
										"src": "58563:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c626f6f6c2c616464726573732c75696e7429",
																	"id": 10171,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "58607:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_dc7116d2e67ccd625262e6814a6f82f2367beea9919409c81fcbb94bea1b6b84",
																		"typeString": "literal_string \"log(address,bool,address,uint)\""
																	},
																	"value": "log(address,bool,address,uint)"
																},
																{
																	"id": 10172,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10159,
																	"src": "58641:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10173,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10161,
																	"src": "58645:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 10174,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10163,
																	"src": "58649:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10175,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10165,
																	"src": "58653:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_dc7116d2e67ccd625262e6814a6f82f2367beea9919409c81fcbb94bea1b6b84",
																		"typeString": "literal_string \"log(address,bool,address,uint)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 10169,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "58583:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 10170,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "58583:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 10176,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "58583:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 10168,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "58567:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 10177,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "58567:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10178,
												"nodeType": "ExpressionStatement",
												"src": "58567:90:12"
											}
										]
									},
									"id": 10180,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "58503:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10166,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10159,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "58515:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10180,
												"src": "58507:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10158,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "58507:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10161,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "58524:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10180,
												"src": "58519:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 10160,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "58519:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10163,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "58536:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10180,
												"src": "58528:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10162,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "58528:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10165,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "58545:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10180,
												"src": "58540:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 10164,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "58540:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "58506:42:12"
									},
									"returnParameters": {
										"id": 10167,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "58563:0:12"
									},
									"scope": 10618,
									"src": "58494:167:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 10202,
										"nodeType": "Block",
										"src": "58742:100:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c626f6f6c2c616464726573732c737472696e6729",
																	"id": 10194,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "58786:34:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_2dd778e616be9386b5911da1a074bbaf979640681783fca6396ea75c8caf6453",
																		"typeString": "literal_string \"log(address,bool,address,string)\""
																	},
																	"value": "log(address,bool,address,string)"
																},
																{
																	"id": 10195,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10182,
																	"src": "58822:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10196,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10184,
																	"src": "58826:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 10197,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10186,
																	"src": "58830:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10198,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10188,
																	"src": "58834:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_2dd778e616be9386b5911da1a074bbaf979640681783fca6396ea75c8caf6453",
																		"typeString": "literal_string \"log(address,bool,address,string)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 10192,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "58762:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 10193,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "58762:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 10199,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "58762:75:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 10191,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "58746:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 10200,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "58746:92:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10201,
												"nodeType": "ExpressionStatement",
												"src": "58746:92:12"
											}
										]
									},
									"id": 10203,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "58673:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10189,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10182,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "58685:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10203,
												"src": "58677:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10181,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "58677:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10184,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "58694:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10203,
												"src": "58689:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 10183,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "58689:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10186,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "58706:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10203,
												"src": "58698:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10185,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "58698:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10188,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "58724:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10203,
												"src": "58710:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 10187,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "58710:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "58676:51:12"
									},
									"returnParameters": {
										"id": 10190,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "58742:0:12"
									},
									"scope": 10618,
									"src": "58664:178:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 10225,
										"nodeType": "Block",
										"src": "58914:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c626f6f6c2c616464726573732c626f6f6c29",
																	"id": 10217,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "58958:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_a6f50b0f122c916fe81861751b94bdddb5e453947768e8af206397bb510790b1",
																		"typeString": "literal_string \"log(address,bool,address,bool)\""
																	},
																	"value": "log(address,bool,address,bool)"
																},
																{
																	"id": 10218,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10205,
																	"src": "58992:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10219,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10207,
																	"src": "58996:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 10220,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10209,
																	"src": "59000:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10221,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10211,
																	"src": "59004:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_a6f50b0f122c916fe81861751b94bdddb5e453947768e8af206397bb510790b1",
																		"typeString": "literal_string \"log(address,bool,address,bool)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 10215,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "58934:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 10216,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "58934:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 10222,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "58934:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 10214,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "58918:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 10223,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "58918:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10224,
												"nodeType": "ExpressionStatement",
												"src": "58918:90:12"
											}
										]
									},
									"id": 10226,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "58854:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10212,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10205,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "58866:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10226,
												"src": "58858:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10204,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "58858:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10207,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "58875:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10226,
												"src": "58870:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 10206,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "58870:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10209,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "58887:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10226,
												"src": "58879:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10208,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "58879:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10211,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "58896:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10226,
												"src": "58891:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 10210,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "58891:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "58857:42:12"
									},
									"returnParameters": {
										"id": 10213,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "58914:0:12"
									},
									"scope": 10618,
									"src": "58845:167:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 10248,
										"nodeType": "Block",
										"src": "59087:101:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c626f6f6c2c616464726573732c6164647265737329",
																	"id": 10240,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "59131:35:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_660375ddb58761b4ce952ec7e1ae63efe9f8e9e69831fd72875968fec9046e35",
																		"typeString": "literal_string \"log(address,bool,address,address)\""
																	},
																	"value": "log(address,bool,address,address)"
																},
																{
																	"id": 10241,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10228,
																	"src": "59168:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10242,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10230,
																	"src": "59172:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 10243,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10232,
																	"src": "59176:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10244,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10234,
																	"src": "59180:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_660375ddb58761b4ce952ec7e1ae63efe9f8e9e69831fd72875968fec9046e35",
																		"typeString": "literal_string \"log(address,bool,address,address)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 10238,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "59107:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 10239,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "59107:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 10245,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "59107:76:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 10237,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "59091:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 10246,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "59091:93:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10247,
												"nodeType": "ExpressionStatement",
												"src": "59091:93:12"
											}
										]
									},
									"id": 10249,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "59024:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10235,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10228,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "59036:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10249,
												"src": "59028:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10227,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "59028:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10230,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "59045:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10249,
												"src": "59040:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 10229,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "59040:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10232,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "59057:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10249,
												"src": "59049:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10231,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "59049:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10234,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "59069:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10249,
												"src": "59061:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10233,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "59061:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "59027:45:12"
									},
									"returnParameters": {
										"id": 10236,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "59087:0:12"
									},
									"scope": 10618,
									"src": "59015:173:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 10271,
										"nodeType": "Block",
										"src": "59260:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c616464726573732c75696e742c75696e7429",
																	"id": 10263,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "59304:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_54fdf3e4fb94f9bebc9a1c60d5b71090f9817e68730b5af20b69dff283044ed6",
																		"typeString": "literal_string \"log(address,address,uint,uint)\""
																	},
																	"value": "log(address,address,uint,uint)"
																},
																{
																	"id": 10264,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10251,
																	"src": "59338:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10265,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10253,
																	"src": "59342:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10266,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10255,
																	"src": "59346:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 10267,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10257,
																	"src": "59350:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_54fdf3e4fb94f9bebc9a1c60d5b71090f9817e68730b5af20b69dff283044ed6",
																		"typeString": "literal_string \"log(address,address,uint,uint)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 10261,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "59280:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 10262,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "59280:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 10268,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "59280:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 10260,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "59264:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 10269,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "59264:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10270,
												"nodeType": "ExpressionStatement",
												"src": "59264:90:12"
											}
										]
									},
									"id": 10272,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "59200:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10258,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10251,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "59212:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10272,
												"src": "59204:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10250,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "59204:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10253,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "59224:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10272,
												"src": "59216:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10252,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "59216:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10255,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "59233:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10272,
												"src": "59228:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 10254,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "59228:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10257,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "59242:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10272,
												"src": "59237:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 10256,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "59237:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "59203:42:12"
									},
									"returnParameters": {
										"id": 10259,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "59260:0:12"
									},
									"scope": 10618,
									"src": "59191:167:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 10294,
										"nodeType": "Block",
										"src": "59439:100:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c616464726573732c75696e742c737472696e6729",
																	"id": 10286,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "59483:34:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_9dd12eadc51edb79b050f95e9310706b305e500a52025b74b024df3cbcb53815",
																		"typeString": "literal_string \"log(address,address,uint,string)\""
																	},
																	"value": "log(address,address,uint,string)"
																},
																{
																	"id": 10287,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10274,
																	"src": "59519:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10288,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10276,
																	"src": "59523:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10289,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10278,
																	"src": "59527:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 10290,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10280,
																	"src": "59531:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_9dd12eadc51edb79b050f95e9310706b305e500a52025b74b024df3cbcb53815",
																		"typeString": "literal_string \"log(address,address,uint,string)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 10284,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "59459:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 10285,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "59459:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 10291,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "59459:75:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 10283,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "59443:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 10292,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "59443:92:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10293,
												"nodeType": "ExpressionStatement",
												"src": "59443:92:12"
											}
										]
									},
									"id": 10295,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "59370:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10281,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10274,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "59382:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10295,
												"src": "59374:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10273,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "59374:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10276,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "59394:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10295,
												"src": "59386:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10275,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "59386:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10278,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "59403:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10295,
												"src": "59398:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 10277,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "59398:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10280,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "59421:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10295,
												"src": "59407:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 10279,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "59407:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "59373:51:12"
									},
									"returnParameters": {
										"id": 10282,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "59439:0:12"
									},
									"scope": 10618,
									"src": "59361:178:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 10317,
										"nodeType": "Block",
										"src": "59611:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c616464726573732c75696e742c626f6f6c29",
																	"id": 10309,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "59655:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_c2f688eccc5824e4375e54ae0df7ae9f757b0758319e26fa7dcc6a4450e1d411",
																		"typeString": "literal_string \"log(address,address,uint,bool)\""
																	},
																	"value": "log(address,address,uint,bool)"
																},
																{
																	"id": 10310,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10297,
																	"src": "59689:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10311,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10299,
																	"src": "59693:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10312,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10301,
																	"src": "59697:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 10313,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10303,
																	"src": "59701:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_c2f688eccc5824e4375e54ae0df7ae9f757b0758319e26fa7dcc6a4450e1d411",
																		"typeString": "literal_string \"log(address,address,uint,bool)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 10307,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "59631:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 10308,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "59631:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 10314,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "59631:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 10306,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "59615:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 10315,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "59615:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10316,
												"nodeType": "ExpressionStatement",
												"src": "59615:90:12"
											}
										]
									},
									"id": 10318,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "59551:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10304,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10297,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "59563:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10318,
												"src": "59555:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10296,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "59555:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10299,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "59575:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10318,
												"src": "59567:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10298,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "59567:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10301,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "59584:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10318,
												"src": "59579:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 10300,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "59579:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10303,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "59593:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10318,
												"src": "59588:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 10302,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "59588:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "59554:42:12"
									},
									"returnParameters": {
										"id": 10305,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "59611:0:12"
									},
									"scope": 10618,
									"src": "59542:167:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 10340,
										"nodeType": "Block",
										"src": "59784:101:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c616464726573732c75696e742c6164647265737329",
																	"id": 10332,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "59828:35:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_d6c65276d9b81968c5dbc7d91412af8260979b88b9036d81153645629a214556",
																		"typeString": "literal_string \"log(address,address,uint,address)\""
																	},
																	"value": "log(address,address,uint,address)"
																},
																{
																	"id": 10333,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10320,
																	"src": "59865:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10334,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10322,
																	"src": "59869:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10335,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10324,
																	"src": "59873:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																},
																{
																	"id": 10336,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10326,
																	"src": "59877:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_d6c65276d9b81968c5dbc7d91412af8260979b88b9036d81153645629a214556",
																		"typeString": "literal_string \"log(address,address,uint,address)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 10330,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "59804:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 10331,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "59804:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 10337,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "59804:76:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 10329,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "59788:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 10338,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "59788:93:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10339,
												"nodeType": "ExpressionStatement",
												"src": "59788:93:12"
											}
										]
									},
									"id": 10341,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "59721:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10327,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10320,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "59733:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10341,
												"src": "59725:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10319,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "59725:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10322,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "59745:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10341,
												"src": "59737:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10321,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "59737:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10324,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "59754:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10341,
												"src": "59749:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 10323,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "59749:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10326,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "59766:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10341,
												"src": "59758:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10325,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "59758:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "59724:45:12"
									},
									"returnParameters": {
										"id": 10328,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "59784:0:12"
									},
									"scope": 10618,
									"src": "59712:173:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 10363,
										"nodeType": "Block",
										"src": "59966:100:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c616464726573732c737472696e672c75696e7429",
																	"id": 10355,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "60010:34:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_04289300eaed00bb9d0d7894f7439ff06a8c4040945c0625e94f6f0c87fb11ba",
																		"typeString": "literal_string \"log(address,address,string,uint)\""
																	},
																	"value": "log(address,address,string,uint)"
																},
																{
																	"id": 10356,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10343,
																	"src": "60046:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10357,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10345,
																	"src": "60050:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10358,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10347,
																	"src": "60054:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 10359,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10349,
																	"src": "60058:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_04289300eaed00bb9d0d7894f7439ff06a8c4040945c0625e94f6f0c87fb11ba",
																		"typeString": "literal_string \"log(address,address,string,uint)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 10353,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "59986:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 10354,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "59986:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 10360,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "59986:75:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 10352,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "59970:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 10361,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "59970:92:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10362,
												"nodeType": "ExpressionStatement",
												"src": "59970:92:12"
											}
										]
									},
									"id": 10364,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "59897:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10350,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10343,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "59909:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10364,
												"src": "59901:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10342,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "59901:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10345,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "59921:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10364,
												"src": "59913:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10344,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "59913:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10347,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "59939:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10364,
												"src": "59925:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 10346,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "59925:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10349,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "59948:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10364,
												"src": "59943:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 10348,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "59943:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "59900:51:12"
									},
									"returnParameters": {
										"id": 10351,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "59966:0:12"
									},
									"scope": 10618,
									"src": "59888:178:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 10386,
										"nodeType": "Block",
										"src": "60156:102:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c616464726573732c737472696e672c737472696e6729",
																	"id": 10378,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "60200:36:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_21bdaf25c85279ffda21e4e2b9f685ff585c62a37c0ebe7ae25670fd06df3aa1",
																		"typeString": "literal_string \"log(address,address,string,string)\""
																	},
																	"value": "log(address,address,string,string)"
																},
																{
																	"id": 10379,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10366,
																	"src": "60238:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10380,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10368,
																	"src": "60242:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10381,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10370,
																	"src": "60246:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 10382,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10372,
																	"src": "60250:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_21bdaf25c85279ffda21e4e2b9f685ff585c62a37c0ebe7ae25670fd06df3aa1",
																		"typeString": "literal_string \"log(address,address,string,string)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 10376,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "60176:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 10377,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "60176:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 10383,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "60176:77:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 10375,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "60160:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 10384,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "60160:94:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10385,
												"nodeType": "ExpressionStatement",
												"src": "60160:94:12"
											}
										]
									},
									"id": 10387,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "60078:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10373,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10366,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "60090:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10387,
												"src": "60082:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10365,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "60082:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10368,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "60102:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10387,
												"src": "60094:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10367,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "60094:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10370,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "60120:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10387,
												"src": "60106:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 10369,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "60106:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10372,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "60138:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10387,
												"src": "60124:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 10371,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "60124:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "60081:60:12"
									},
									"returnParameters": {
										"id": 10374,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "60156:0:12"
									},
									"scope": 10618,
									"src": "60069:189:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 10409,
										"nodeType": "Block",
										"src": "60339:100:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c616464726573732c737472696e672c626f6f6c29",
																	"id": 10401,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "60383:34:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_6f1a594e70810560eaae5bbc82bc991f1120ac326ec142f6fb212682169447fd",
																		"typeString": "literal_string \"log(address,address,string,bool)\""
																	},
																	"value": "log(address,address,string,bool)"
																},
																{
																	"id": 10402,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10389,
																	"src": "60419:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10403,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10391,
																	"src": "60423:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10404,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10393,
																	"src": "60427:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 10405,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10395,
																	"src": "60431:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_6f1a594e70810560eaae5bbc82bc991f1120ac326ec142f6fb212682169447fd",
																		"typeString": "literal_string \"log(address,address,string,bool)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 10399,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "60359:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 10400,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "60359:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 10406,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "60359:75:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 10398,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "60343:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 10407,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "60343:92:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10408,
												"nodeType": "ExpressionStatement",
												"src": "60343:92:12"
											}
										]
									},
									"id": 10410,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "60270:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10396,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10389,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "60282:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10410,
												"src": "60274:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10388,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "60274:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10391,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "60294:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10410,
												"src": "60286:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10390,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "60286:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10393,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "60312:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10410,
												"src": "60298:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 10392,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "60298:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10395,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "60321:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10410,
												"src": "60316:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 10394,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "60316:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "60273:51:12"
									},
									"returnParameters": {
										"id": 10397,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "60339:0:12"
									},
									"scope": 10618,
									"src": "60261:178:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 10432,
										"nodeType": "Block",
										"src": "60523:103:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c616464726573732c737472696e672c6164647265737329",
																	"id": 10424,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "60567:37:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_8f736d1685010d3a1ac02ed96109cdd5141fd92077c14203bc63442ad9b6a687",
																		"typeString": "literal_string \"log(address,address,string,address)\""
																	},
																	"value": "log(address,address,string,address)"
																},
																{
																	"id": 10425,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10412,
																	"src": "60606:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10426,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10414,
																	"src": "60610:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10427,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10416,
																	"src": "60614:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																},
																{
																	"id": 10428,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10418,
																	"src": "60618:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_8f736d1685010d3a1ac02ed96109cdd5141fd92077c14203bc63442ad9b6a687",
																		"typeString": "literal_string \"log(address,address,string,address)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 10422,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "60543:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 10423,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "60543:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 10429,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "60543:78:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 10421,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "60527:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 10430,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "60527:95:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10431,
												"nodeType": "ExpressionStatement",
												"src": "60527:95:12"
											}
										]
									},
									"id": 10433,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "60451:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10419,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10412,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "60463:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10433,
												"src": "60455:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10411,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "60455:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10414,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "60475:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10433,
												"src": "60467:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10413,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "60467:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10416,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "60493:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10433,
												"src": "60479:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 10415,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "60479:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10418,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "60505:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10433,
												"src": "60497:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10417,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "60497:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "60454:54:12"
									},
									"returnParameters": {
										"id": 10420,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "60523:0:12"
									},
									"scope": 10618,
									"src": "60442:184:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 10455,
										"nodeType": "Block",
										"src": "60698:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c616464726573732c626f6f6c2c75696e7429",
																	"id": 10447,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "60742:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_95d65f110e4042ee84d162cfc6d17a44c2f2784259e33c97679d21e7a95a841e",
																		"typeString": "literal_string \"log(address,address,bool,uint)\""
																	},
																	"value": "log(address,address,bool,uint)"
																},
																{
																	"id": 10448,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10435,
																	"src": "60776:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10449,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10437,
																	"src": "60780:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10450,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10439,
																	"src": "60784:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 10451,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10441,
																	"src": "60788:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_95d65f110e4042ee84d162cfc6d17a44c2f2784259e33c97679d21e7a95a841e",
																		"typeString": "literal_string \"log(address,address,bool,uint)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 10445,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "60718:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 10446,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "60718:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 10452,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "60718:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 10444,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "60702:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 10453,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "60702:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10454,
												"nodeType": "ExpressionStatement",
												"src": "60702:90:12"
											}
										]
									},
									"id": 10456,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "60638:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10442,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10435,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "60650:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10456,
												"src": "60642:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10434,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "60642:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10437,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "60662:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10456,
												"src": "60654:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10436,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "60654:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10439,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "60671:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10456,
												"src": "60666:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 10438,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "60666:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10441,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "60680:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10456,
												"src": "60675:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 10440,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "60675:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "60641:42:12"
									},
									"returnParameters": {
										"id": 10443,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "60698:0:12"
									},
									"scope": 10618,
									"src": "60629:167:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 10478,
										"nodeType": "Block",
										"src": "60877:100:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c616464726573732c626f6f6c2c737472696e6729",
																	"id": 10470,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "60921:34:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_aa6540c8e9a40f69e022e01a14ab22c94aae4999f1d7a246236f464d7c933b88",
																		"typeString": "literal_string \"log(address,address,bool,string)\""
																	},
																	"value": "log(address,address,bool,string)"
																},
																{
																	"id": 10471,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10458,
																	"src": "60957:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10472,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10460,
																	"src": "60961:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10473,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10462,
																	"src": "60965:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 10474,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10464,
																	"src": "60969:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_aa6540c8e9a40f69e022e01a14ab22c94aae4999f1d7a246236f464d7c933b88",
																		"typeString": "literal_string \"log(address,address,bool,string)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 10468,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "60897:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 10469,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "60897:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 10475,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "60897:75:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 10467,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "60881:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 10476,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "60881:92:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10477,
												"nodeType": "ExpressionStatement",
												"src": "60881:92:12"
											}
										]
									},
									"id": 10479,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "60808:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10465,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10458,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "60820:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10479,
												"src": "60812:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10457,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "60812:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10460,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "60832:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10479,
												"src": "60824:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10459,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "60824:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10462,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "60841:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10479,
												"src": "60836:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 10461,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "60836:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10464,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "60859:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10479,
												"src": "60845:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 10463,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "60845:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "60811:51:12"
									},
									"returnParameters": {
										"id": 10466,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "60877:0:12"
									},
									"scope": 10618,
									"src": "60799:178:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 10501,
										"nodeType": "Block",
										"src": "61049:98:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c616464726573732c626f6f6c2c626f6f6c29",
																	"id": 10493,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "61093:32:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_2cd4134aedbc2cd722f2b9715dc3acb74b16b253590361dd98a4d6cb66119b65",
																		"typeString": "literal_string \"log(address,address,bool,bool)\""
																	},
																	"value": "log(address,address,bool,bool)"
																},
																{
																	"id": 10494,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10481,
																	"src": "61127:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10495,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10483,
																	"src": "61131:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10496,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10485,
																	"src": "61135:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 10497,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10487,
																	"src": "61139:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_2cd4134aedbc2cd722f2b9715dc3acb74b16b253590361dd98a4d6cb66119b65",
																		"typeString": "literal_string \"log(address,address,bool,bool)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 10491,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "61069:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 10492,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "61069:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 10498,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "61069:73:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 10490,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "61053:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 10499,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "61053:90:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10500,
												"nodeType": "ExpressionStatement",
												"src": "61053:90:12"
											}
										]
									},
									"id": 10502,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "60989:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10488,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10481,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "61001:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10502,
												"src": "60993:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10480,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "60993:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10483,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "61013:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10502,
												"src": "61005:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10482,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "61005:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10485,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "61022:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10502,
												"src": "61017:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 10484,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "61017:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10487,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "61031:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10502,
												"src": "61026:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 10486,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "61026:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "60992:42:12"
									},
									"returnParameters": {
										"id": 10489,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "61049:0:12"
									},
									"scope": 10618,
									"src": "60980:167:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 10524,
										"nodeType": "Block",
										"src": "61222:101:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c616464726573732c626f6f6c2c6164647265737329",
																	"id": 10516,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "61266:35:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_9f1bc36e6c1a1385bfe3a230338e478ee5447b81d25d35962aff021b2c578b9c",
																		"typeString": "literal_string \"log(address,address,bool,address)\""
																	},
																	"value": "log(address,address,bool,address)"
																},
																{
																	"id": 10517,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10504,
																	"src": "61303:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10518,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10506,
																	"src": "61307:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10519,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10508,
																	"src": "61311:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																},
																{
																	"id": 10520,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10510,
																	"src": "61315:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_9f1bc36e6c1a1385bfe3a230338e478ee5447b81d25d35962aff021b2c578b9c",
																		"typeString": "literal_string \"log(address,address,bool,address)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 10514,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "61242:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 10515,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "61242:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 10521,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "61242:76:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 10513,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "61226:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 10522,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "61226:93:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10523,
												"nodeType": "ExpressionStatement",
												"src": "61226:93:12"
											}
										]
									},
									"id": 10525,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "61159:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10511,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10504,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "61171:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10525,
												"src": "61163:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10503,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "61163:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10506,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "61183:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10525,
												"src": "61175:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10505,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "61175:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10508,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "61192:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10525,
												"src": "61187:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 10507,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "61187:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10510,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "61204:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10525,
												"src": "61196:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10509,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "61196:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "61162:45:12"
									},
									"returnParameters": {
										"id": 10512,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "61222:0:12"
									},
									"scope": 10618,
									"src": "61150:173:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 10547,
										"nodeType": "Block",
										"src": "61398:101:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c616464726573732c616464726573732c75696e7429",
																	"id": 10539,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "61442:35:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_ed5eac8706392442fff9f76d5de4d50b9cc22387f3f19d447470771094406028",
																		"typeString": "literal_string \"log(address,address,address,uint)\""
																	},
																	"value": "log(address,address,address,uint)"
																},
																{
																	"id": 10540,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10527,
																	"src": "61479:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10541,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10529,
																	"src": "61483:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10542,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10531,
																	"src": "61487:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10543,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10533,
																	"src": "61491:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_ed5eac8706392442fff9f76d5de4d50b9cc22387f3f19d447470771094406028",
																		"typeString": "literal_string \"log(address,address,address,uint)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_uint256",
																		"typeString": "uint256"
																	}
																],
																"expression": {
																	"id": 10537,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "61418:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 10538,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "61418:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 10544,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "61418:76:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 10536,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "61402:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 10545,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "61402:93:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10546,
												"nodeType": "ExpressionStatement",
												"src": "61402:93:12"
											}
										]
									},
									"id": 10548,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "61335:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10534,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10527,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "61347:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10548,
												"src": "61339:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10526,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "61339:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10529,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "61359:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10548,
												"src": "61351:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10528,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "61351:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10531,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "61371:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10548,
												"src": "61363:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10530,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "61363:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10533,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "61380:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10548,
												"src": "61375:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 10532,
													"name": "uint",
													"nodeType": "ElementaryTypeName",
													"src": "61375:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "61338:45:12"
									},
									"returnParameters": {
										"id": 10535,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "61398:0:12"
									},
									"scope": 10618,
									"src": "61326:173:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 10570,
										"nodeType": "Block",
										"src": "61583:103:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c616464726573732c616464726573732c737472696e6729",
																	"id": 10562,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "61627:37:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_f808da2086fed855c3e15d9dbfed3b17a93ed9a59947aae6ab05b7e18576f025",
																		"typeString": "literal_string \"log(address,address,address,string)\""
																	},
																	"value": "log(address,address,address,string)"
																},
																{
																	"id": 10563,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10550,
																	"src": "61666:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10564,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10552,
																	"src": "61670:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10565,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10554,
																	"src": "61674:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10566,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10556,
																	"src": "61678:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_f808da2086fed855c3e15d9dbfed3b17a93ed9a59947aae6ab05b7e18576f025",
																		"typeString": "literal_string \"log(address,address,address,string)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_string_memory_ptr",
																		"typeString": "string memory"
																	}
																],
																"expression": {
																	"id": 10560,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "61603:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 10561,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "61603:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 10567,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "61603:78:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 10559,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "61587:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 10568,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "61587:95:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10569,
												"nodeType": "ExpressionStatement",
												"src": "61587:95:12"
											}
										]
									},
									"id": 10571,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "61511:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10557,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10550,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "61523:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10571,
												"src": "61515:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10549,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "61515:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10552,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "61535:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10571,
												"src": "61527:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10551,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "61527:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10554,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "61547:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10571,
												"src": "61539:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10553,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "61539:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10556,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "61565:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10571,
												"src": "61551:16:12",
												"stateVariable": false,
												"storageLocation": "memory",
												"typeDescriptions": {
													"typeIdentifier": "t_string_memory_ptr",
													"typeString": "string"
												},
												"typeName": {
													"id": 10555,
													"name": "string",
													"nodeType": "ElementaryTypeName",
													"src": "61551:6:12",
													"typeDescriptions": {
														"typeIdentifier": "t_string_storage_ptr",
														"typeString": "string"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "61514:54:12"
									},
									"returnParameters": {
										"id": 10558,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "61583:0:12"
									},
									"scope": 10618,
									"src": "61502:184:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 10593,
										"nodeType": "Block",
										"src": "61761:101:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c616464726573732c616464726573732c626f6f6c29",
																	"id": 10585,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "61805:35:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_0e378994a4cd2663acfd73a7ad4e09d196e4fb7ee05b7cdf0708eb30271e2afb",
																		"typeString": "literal_string \"log(address,address,address,bool)\""
																	},
																	"value": "log(address,address,address,bool)"
																},
																{
																	"id": 10586,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10573,
																	"src": "61842:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10587,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10575,
																	"src": "61846:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10588,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10577,
																	"src": "61850:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10589,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10579,
																	"src": "61854:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_0e378994a4cd2663acfd73a7ad4e09d196e4fb7ee05b7cdf0708eb30271e2afb",
																		"typeString": "literal_string \"log(address,address,address,bool)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_bool",
																		"typeString": "bool"
																	}
																],
																"expression": {
																	"id": 10583,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "61781:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 10584,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "61781:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 10590,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "61781:76:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 10582,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "61765:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 10591,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "61765:93:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10592,
												"nodeType": "ExpressionStatement",
												"src": "61765:93:12"
											}
										]
									},
									"id": 10594,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "61698:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10580,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10573,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "61710:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10594,
												"src": "61702:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10572,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "61702:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10575,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "61722:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10594,
												"src": "61714:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10574,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "61714:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10577,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "61734:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10594,
												"src": "61726:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10576,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "61726:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10579,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "61743:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10594,
												"src": "61738:7:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 10578,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "61738:4:12",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "61701:45:12"
									},
									"returnParameters": {
										"id": 10581,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "61761:0:12"
									},
									"scope": 10618,
									"src": "61689:173:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								},
								{
									"body": {
										"id": 10616,
										"nodeType": "Block",
										"src": "61940:104:12",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"arguments": [
																{
																	"hexValue": "6c6f6728616464726573732c616464726573732c616464726573732c6164647265737329",
																	"id": 10608,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"kind": "string",
																	"lValueRequested": false,
																	"nodeType": "Literal",
																	"src": "61984:38:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_stringliteral_665bf1345e006aa321c0b6b71bed55ce0d6cdd812632f8c43114f62c55ffa0b5",
																		"typeString": "literal_string \"log(address,address,address,address)\""
																	},
																	"value": "log(address,address,address,address)"
																},
																{
																	"id": 10609,
																	"name": "p0",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10596,
																	"src": "62024:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10610,
																	"name": "p1",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10598,
																	"src": "62028:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10611,
																	"name": "p2",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10600,
																	"src": "62032:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																{
																	"id": 10612,
																	"name": "p3",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 10602,
																	"src": "62036:2:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																}
															],
															"expression": {
																"argumentTypes": [
																	{
																		"typeIdentifier": "t_stringliteral_665bf1345e006aa321c0b6b71bed55ce0d6cdd812632f8c43114f62c55ffa0b5",
																		"typeString": "literal_string \"log(address,address,address,address)\""
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	},
																	{
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																],
																"expression": {
																	"id": 10606,
																	"name": "abi",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 4294967295,
																	"src": "61960:3:12",
																	"typeDescriptions": {
																		"typeIdentifier": "t_magic_abi",
																		"typeString": "abi"
																	}
																},
																"id": 10607,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"lValueRequested": false,
																"memberName": "encodeWithSignature",
																"nodeType": "MemberAccess",
																"src": "61960:23:12",
																"typeDescriptions": {
																	"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
																	"typeString": "function (string memory) pure returns (bytes memory)"
																}
															},
															"id": 10613,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"kind": "functionCall",
															"lValueRequested": false,
															"names": [],
															"nodeType": "FunctionCall",
															"src": "61960:79:12",
															"tryCall": false,
															"typeDescriptions": {
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bytes_memory_ptr",
																"typeString": "bytes memory"
															}
														],
														"id": 10605,
														"name": "_sendLogPayload",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 2578,
														"src": "61944:15:12",
														"typeDescriptions": {
															"typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
															"typeString": "function (bytes memory) view"
														}
													},
													"id": 10614,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "61944:96:12",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 10615,
												"nodeType": "ExpressionStatement",
												"src": "61944:96:12"
											}
										]
									},
									"id": 10617,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "log",
									"nameLocation": "61874:3:12",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10603,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 10596,
												"mutability": "mutable",
												"name": "p0",
												"nameLocation": "61886:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10617,
												"src": "61878:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10595,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "61878:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10598,
												"mutability": "mutable",
												"name": "p1",
												"nameLocation": "61898:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10617,
												"src": "61890:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10597,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "61890:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10600,
												"mutability": "mutable",
												"name": "p2",
												"nameLocation": "61910:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10617,
												"src": "61902:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10599,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "61902:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 10602,
												"mutability": "mutable",
												"name": "p3",
												"nameLocation": "61922:2:12",
												"nodeType": "VariableDeclaration",
												"scope": 10617,
												"src": "61914:10:12",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 10601,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "61914:7:12",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "61877:48:12"
									},
									"returnParameters": {
										"id": 10604,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "61940:0:12"
									},
									"scope": 10618,
									"src": "61865:179:12",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "internal"
								}
							],
							"scope": 10619,
							"src": "67:61980:12",
							"usedErrors": []
						}
					],
					"src": "32:62016:12"
				},
				"id": 12
			}
		}
	}
}