{
  "contractName": "GuardManager",
  "sourceName": "@gnosis.pm/safe-contracts/contracts/base/GuardManager.sol",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "guard",
          "type": "address"
        }
      ],
      "name": "ChangedGuard",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "guard",
          "type": "address"
        }
      ],
      "name": "setGuard",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50610154806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063e19a9dd914610030575b600080fd5b61004361003e3660046100ee565b610045565b005b61004d6100b1565b7f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c88181556040516001600160a01b03831681527f1151116914515bc0891ff9047a6cb32cf902546f83066499bcf8ba33d2353fa29060200160405180910390a15050565b3330146100ec5760405162461bcd60e51b8152602060048201526005602482015264475330333160d81b604482015260640160405180910390fd5b565b60006020828403121561010057600080fd5b81356001600160a01b038116811461011757600080fd5b939250505056fea264697066735822122030f268f744a16e4d72265a4a171d2b89987261938e617ab09616b4e1bad5e5fa64736f6c634300080a0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063e19a9dd914610030575b600080fd5b61004361003e3660046100ee565b610045565b005b61004d6100b1565b7f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c88181556040516001600160a01b03831681527f1151116914515bc0891ff9047a6cb32cf902546f83066499bcf8ba33d2353fa29060200160405180910390a15050565b3330146100ec5760405162461bcd60e51b8152602060048201526005602482015264475330333160d81b604482015260640160405180910390fd5b565b60006020828403121561010057600080fd5b81356001600160a01b038116811461011757600080fd5b939250505056fea264697066735822122030f268f744a16e4d72265a4a171d2b89987261938e617ab09616b4e1bad5e5fa64736f6c634300080a0033",
  "linkReferences": {},
  "deployedLinkReferences": {},
  "devdoc": {
    "author": "Richard Meissner - <richard@gnosis.pm>",
    "kind": "dev",
    "methods": {
      "setGuard(address)": {
        "details": "Set a guard that checks transactions before execution",
        "params": {
          "guard": "The address of the guard to be used or the 0 address to disable the guard"
        }
      }
    },
    "title": "Fallback Manager - A contract that manages fallback calls made to this contract",
    "version": 1
  },
  "evm": {
    "bytecode": {
      "functionDebugData": {},
      "generatedSources": [],
      "linkReferences": {},
      "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x154 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xE19A9DD9 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0xEE JUMP JUMPDEST PUSH2 0x45 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4D PUSH2 0xB1 JUMP JUMPDEST PUSH32 0x4A204F620C8C5CCDCA3FD54D003BADD85BA500436A431F0CBDA4F558C93C34C8 DUP2 DUP2 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH32 0x1151116914515BC0891FF9047A6CB32CF902546F83066499BCF8BA33D2353FA2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0xEC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x5 PUSH1 0x24 DUP3 ADD MSTORE PUSH5 0x4753303331 PUSH1 0xD8 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x100 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ADDRESS CALLCODE PUSH9 0xF744A16E4D72265A4A OR SAR 0x2B DUP10 SWAP9 PUSH19 0x61938E617AB09616B4E1BAD5E5FA64736F6C63 NUMBER STOP ADDMOD EXP STOP CALLER ",
      "sourceMap": "735:903:3:-:0;;;;;;;;;;;;;;;;;;;"
    },
    "deployedBytecode": {
      "functionDebugData": {
        "@requireSelfCall_2065": {
          "entryPoint": 177,
          "id": 2065,
          "parameterSlots": 0,
          "returnSlots": 0
        },
        "@setGuard_1101": {
          "entryPoint": 69,
          "id": 1101,
          "parameterSlots": 1,
          "returnSlots": 0
        },
        "abi_decode_tuple_t_address": {
          "entryPoint": 238,
          "id": null,
          "parameterSlots": 2,
          "returnSlots": 1
        },
        "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
          "entryPoint": null,
          "id": null,
          "parameterSlots": 2,
          "returnSlots": 1
        },
        "abi_encode_tuple_t_stringliteral_b7248be3e8887f14d79f63d350787adcdb5e12b47898ebd6ef2aacf660fc9f17__to_t_string_memory_ptr__fromStack_reversed": {
          "entryPoint": null,
          "id": null,
          "parameterSlots": 1,
          "returnSlots": 1
        }
      },
      "generatedSources": [
        {
          "ast": {
            "nodeType": "YulBlock",
            "src": "0:843:86",
            "statements": [
              {
                "nodeType": "YulBlock",
                "src": "6:3:86",
                "statements": []
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "84:216:86",
                  "statements": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "130:16:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "139:1:86",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "142:1:86",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "revert",
                                "nodeType": "YulIdentifier",
                                "src": "132:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "132:12:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "132:12:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "dataEnd",
                                "nodeType": "YulIdentifier",
                                "src": "105:7:86"
                              },
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "114:9:86"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "101:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "101:23:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "126:2:86",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "97:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "97:32:86"
                      },
                      "nodeType": "YulIf",
                      "src": "94:52:86"
                    },
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "155:36:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "181:9:86"
                          }
                        ],
                        "functionName": {
                          "name": "calldataload",
                          "nodeType": "YulIdentifier",
                          "src": "168:12:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "168:23:86"
                      },
                      "variables": [
                        {
                          "name": "value",
                          "nodeType": "YulTypedName",
                          "src": "159:5:86",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "254:16:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "263:1:86",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "266:1:86",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "revert",
                                "nodeType": "YulIdentifier",
                                "src": "256:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "256:12:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "256:12:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "213:5:86"
                              },
                              {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nodeType": "YulIdentifier",
                                    "src": "224:5:86"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "kind": "number",
                                            "nodeType": "YulLiteral",
                                            "src": "239:3:86",
                                            "type": "",
                                            "value": "160"
                                          },
                                          {
                                            "kind": "number",
                                            "nodeType": "YulLiteral",
                                            "src": "244:1:86",
                                            "type": "",
                                            "value": "1"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "shl",
                                          "nodeType": "YulIdentifier",
                                          "src": "235:3:86"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "235:11:86"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "248:1:86",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sub",
                                      "nodeType": "YulIdentifier",
                                      "src": "231:3:86"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "231:19:86"
                                  }
                                ],
                                "functionName": {
                                  "name": "and",
                                  "nodeType": "YulIdentifier",
                                  "src": "220:3:86"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "220:31:86"
                              }
                            ],
                            "functionName": {
                              "name": "eq",
                              "nodeType": "YulIdentifier",
                              "src": "210:2:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "210:42:86"
                          }
                        ],
                        "functionName": {
                          "name": "iszero",
                          "nodeType": "YulIdentifier",
                          "src": "203:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "203:50:86"
                      },
                      "nodeType": "YulIf",
                      "src": "200:70:86"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "279:15:86",
                      "value": {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "289:5:86"
                      },
                      "variableNames": [
                        {
                          "name": "value0",
                          "nodeType": "YulIdentifier",
                          "src": "279:6:86"
                        }
                      ]
                    }
                  ]
                },
                "name": "abi_decode_tuple_t_address",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "headStart",
                    "nodeType": "YulTypedName",
                    "src": "50:9:86",
                    "type": ""
                  },
                  {
                    "name": "dataEnd",
                    "nodeType": "YulTypedName",
                    "src": "61:7:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "value0",
                    "nodeType": "YulTypedName",
                    "src": "73:6:86",
                    "type": ""
                  }
                ],
                "src": "14:286:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "406:102:86",
                  "statements": [
                    {
                      "nodeType": "YulAssignment",
                      "src": "416:26:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "428:9:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "439:2:86",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "424:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "424:18:86"
                      },
                      "variableNames": [
                        {
                          "name": "tail",
                          "nodeType": "YulIdentifier",
                          "src": "416:4:86"
                        }
                      ]
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "458:9:86"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value0",
                                "nodeType": "YulIdentifier",
                                "src": "473:6:86"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "489:3:86",
                                        "type": "",
                                        "value": "160"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "494:1:86",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "485:3:86"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "485:11:86"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "498:1:86",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nodeType": "YulIdentifier",
                                  "src": "481:3:86"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "481:19:86"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "469:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "469:32:86"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "451:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "451:51:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "451:51:86"
                    }
                  ]
                },
                "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "headStart",
                    "nodeType": "YulTypedName",
                    "src": "375:9:86",
                    "type": ""
                  },
                  {
                    "name": "value0",
                    "nodeType": "YulTypedName",
                    "src": "386:6:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "tail",
                    "nodeType": "YulTypedName",
                    "src": "397:4:86",
                    "type": ""
                  }
                ],
                "src": "305:203:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "687:154:86",
                  "statements": [
                    {
                      "expression": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "704:9:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "715:2:86",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "697:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "697:21:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "697:21:86"
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "738:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "749:2:86",
                                "type": "",
                                "value": "32"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "734:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "734:18:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "754:1:86",
                            "type": "",
                            "value": "5"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "727:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "727:29:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "727:29:86"
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "776:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "787:2:86",
                                "type": "",
                                "value": "64"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "772:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "772:18:86"
                          },
                          {
                            "hexValue": "4753303331",
                            "kind": "string",
                            "nodeType": "YulLiteral",
                            "src": "792:7:86",
                            "type": "",
                            "value": "GS031"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "765:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "765:35:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "765:35:86"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "809:26:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "821:9:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "832:2:86",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "817:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "817:18:86"
                      },
                      "variableNames": [
                        {
                          "name": "tail",
                          "nodeType": "YulIdentifier",
                          "src": "809:4:86"
                        }
                      ]
                    }
                  ]
                },
                "name": "abi_encode_tuple_t_stringliteral_b7248be3e8887f14d79f63d350787adcdb5e12b47898ebd6ef2aacf660fc9f17__to_t_string_memory_ptr__fromStack_reversed",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "headStart",
                    "nodeType": "YulTypedName",
                    "src": "664:9:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "tail",
                    "nodeType": "YulTypedName",
                    "src": "678:4:86",
                    "type": ""
                  }
                ],
                "src": "513:328:86"
              }
            ]
          },
          "contents": "{\n    { }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_stringliteral_b7248be3e8887f14d79f63d350787adcdb5e12b47898ebd6ef2aacf660fc9f17__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 5)\n        mstore(add(headStart, 64), \"GS031\")\n        tail := add(headStart, 96)\n    }\n}",
          "id": 86,
          "language": "Yul",
          "name": "#utility.yul"
        }
      ],
      "immutableReferences": {},
      "linkReferences": {},
      "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xE19A9DD9 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0xEE JUMP JUMPDEST PUSH2 0x45 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4D PUSH2 0xB1 JUMP JUMPDEST PUSH32 0x4A204F620C8C5CCDCA3FD54D003BADD85BA500436A431F0CBDA4F558C93C34C8 DUP2 DUP2 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH32 0x1151116914515BC0891FF9047A6CB32CF902546F83066499BCF8BA33D2353FA2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0xEC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x5 PUSH1 0x24 DUP3 ADD MSTORE PUSH5 0x4753303331 PUSH1 0xD8 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x100 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ADDRESS CALLCODE PUSH9 0xF744A16E4D72265A4A OR SAR 0x2B DUP10 SWAP9 PUSH19 0x61938E617AB09616B4E1BAD5E5FA64736F6C63 NUMBER STOP ADDMOD EXP STOP CALLER ",
      "sourceMap": "735:903:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1150:254;;;;;;:::i;:::-;;:::i;:::-;;;440:17:9;:15;:17::i;:::-;915:66:3::1;1335:19:::0;;;1378::::1;::::0;-1:-1:-1;;;;;469:32:86;;451:51;;1378:19:3::1;::::0;439:2:86;424:18;1378:19:3::1;;;;;;;1203:201;1150:254:::0;:::o;231:102:9:-;289:10;311:4;289:27;281:45;;;;-1:-1:-1;;;281:45:9;;715:2:86;281:45:9;;;697:21:86;754:1;734:18;;;727:29;-1:-1:-1;;;772:18:86;;;765:35;817:18;;281:45:9;;;;;;;;231:102::o;14:286:86:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;168:23;;-1:-1:-1;;;;;220:31:86;;210:42;;200:70;;266:1;263;256:12;200:70;289:5;14:286;-1:-1:-1;;;14:286:86:o"
    },
    "gasEstimates": {
      "creation": {
        "codeDepositCost": "68000",
        "executionCost": "117",
        "totalCost": "68117"
      },
      "external": {
        "setGuard(address)": "23478"
      },
      "internal": {
        "getGuard()": "infinite"
      }
    },
    "methodIdentifiers": {
      "setGuard(address)": "e19a9dd9"
    }
  },
  "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"guard\",\"type\":\"address\"}],\"name\":\"ChangedGuard\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"guard\",\"type\":\"address\"}],\"name\":\"setGuard\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Richard Meissner - <richard@gnosis.pm>\",\"kind\":\"dev\",\"methods\":{\"setGuard(address)\":{\"details\":\"Set a guard that checks transactions before execution\",\"params\":{\"guard\":\"The address of the guard to be used or the 0 address to disable the guard\"}}},\"title\":\"Fallback Manager - A contract that manages fallback calls made to this contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@gnosis.pm/safe-contracts/contracts/base/GuardManager.sol\":\"GuardManager\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@gnosis.pm/safe-contracts/contracts/base/GuardManager.sol\":{\"content\":\"// SPDX-License-Identifier: LGPL-3.0-only\\npragma solidity >=0.7.0 <0.9.0;\\n\\nimport \\\"../common/Enum.sol\\\";\\nimport \\\"../common/SelfAuthorized.sol\\\";\\n\\ninterface Guard {\\n    function checkTransaction(\\n        address to,\\n        uint256 value,\\n        bytes memory data,\\n        Enum.Operation operation,\\n        uint256 safeTxGas,\\n        uint256 baseGas,\\n        uint256 gasPrice,\\n        address gasToken,\\n        address payable refundReceiver,\\n        bytes memory signatures,\\n        address msgSender\\n    ) external;\\n\\n    function checkAfterExecution(bytes32 txHash, bool success) external;\\n}\\n\\n/// @title Fallback Manager - A contract that manages fallback calls made to this contract\\n/// @author Richard Meissner - <richard@gnosis.pm>\\ncontract GuardManager is SelfAuthorized {\\n    event ChangedGuard(address guard);\\n    // keccak256(\\\"guard_manager.guard.address\\\")\\n    bytes32 internal constant GUARD_STORAGE_SLOT = 0x4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c8;\\n\\n    /// @dev Set a guard that checks transactions before execution\\n    /// @param guard The address of the guard to be used or the 0 address to disable the guard\\n    function setGuard(address guard) external authorized {\\n        bytes32 slot = GUARD_STORAGE_SLOT;\\n        // solhint-disable-next-line no-inline-assembly\\n        assembly {\\n            sstore(slot, guard)\\n        }\\n        emit ChangedGuard(guard);\\n    }\\n\\n    function getGuard() internal view returns (address guard) {\\n        bytes32 slot = GUARD_STORAGE_SLOT;\\n        // solhint-disable-next-line no-inline-assembly\\n        assembly {\\n            guard := sload(slot)\\n        }\\n    }\\n}\\n\",\"keccak256\":\"0x53a532a31f9632d5a73ad0df56f05bd2b66a2f781f571eb48d00367d370707f9\",\"license\":\"LGPL-3.0-only\"},\"@gnosis.pm/safe-contracts/contracts/common/Enum.sol\":{\"content\":\"// SPDX-License-Identifier: LGPL-3.0-only\\npragma solidity >=0.7.0 <0.9.0;\\n\\n/// @title Enum - Collection of enums\\n/// @author Richard Meissner - <richard@gnosis.pm>\\ncontract Enum {\\n    enum Operation {Call, DelegateCall}\\n}\\n\",\"keccak256\":\"0x473e45b1a5cc47be494b0e123c9127f0c11c1e0992a321ae5a644c0bfdb2c14f\",\"license\":\"LGPL-3.0-only\"},\"@gnosis.pm/safe-contracts/contracts/common/SelfAuthorized.sol\":{\"content\":\"// SPDX-License-Identifier: LGPL-3.0-only\\npragma solidity >=0.7.0 <0.9.0;\\n\\n/// @title SelfAuthorized - authorizes current contract to perform actions\\n/// @author Richard Meissner - <richard@gnosis.pm>\\ncontract SelfAuthorized {\\n    function requireSelfCall() private view {\\n        require(msg.sender == address(this), \\\"GS031\\\");\\n    }\\n\\n    modifier authorized() {\\n        // This is a function call as it minimized the bytecode size\\n        requireSelfCall();\\n        _;\\n    }\\n}\\n\",\"keccak256\":\"0x59d36efca578b75541a776f62a0d0ef03712fc27b6647c3915c14b572106d7bc\",\"license\":\"LGPL-3.0-only\"}},\"version\":1}",
  "storageLayout": {
    "storage": [],
    "types": null
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}