{
  "fileName": "StorageMocks.sol",
  "contractName": "StorageMockWithContracts",
  "source": "pragma solidity ^0.6.0;\n// SPDX-License-Identifier: MIT\n\n// Added just for having a circular reference\nimport \"./StorageMocks3.sol\";\n\ncontract SimpleStorageMock {\n  uint256 public my_public_uint256;\n  string internal my_internal_string;\n  uint8 private my_private_uint8;\n  int8 private my_private_uint16;\n  bool private my_private_bool;\n  uint private my_private_uint;\n  address private my_private_address;\n}\n\ncontract StorageMockWithBytes {\n  bytes internal my_bytes;\n  bytes8 internal my_bytes8;\n  bytes32 internal my_bytes32;\n}\n\ncontract StorageMockWithConstants {\n  uint256 public constant my_public_uint256 = 256;\n  string internal constant my_internal_string = \"foo\";\n  uint8 private constant my_private_uint8 = 8;\n}\n\ncontract StorageMockWithArrays {\n  uint256[] public my_public_uint256_dynarray;\n  string[] internal my_internal_string_dynarray;\n  address[] private my_private_address_dynarray;\n  int8[10] public my_public_int8_staticarray;\n  bool[20] internal my_internal_bool_staticarray;\n  uint[30] private my_private_uint_staticarray;\n}\n\ncontract StorageMockWithMappings {\n  mapping(uint256 => string) public my_mapping;\n  mapping(uint256 => mapping(string => address)) internal my_nested_mapping;\n  mapping(uint256 => bool[]) private my_mapping_with_arrays;\n}\n\ncontract StorageMockWithFunctions {\n  function(uint) internal my_fun;\n  function(string memory, string memory)[] internal my_fun_dynarray;\n  function(uint) returns (address)[10] internal my_fun_staticarray;\n  mapping(uint256 => function(bool)) internal my_fun_mapping;\n}\n\ncontract StorageMockWithContracts {\n  SimpleStorageMock public my_contract;\n  SimpleStorageMock[] private my_contract_dynarray;\n  SimpleStorageMock[10] internal my_contract_staticarray;\n  mapping(uint256 => SimpleStorageMock) private my_contract_mapping;\n  mapping(uint256 => SimpleStorageMock[]) private my_contract_dynarray_mapping;\n  mapping(uint256 => SimpleStorageMock[10]) private my_contract_staticarray_mapping;\n}\n\ncontract StorageMockWithStructs {\n  struct MyStruct {\n    uint256 struct_uint256;\n    string struct_string;\n    address struct_address;\n  }  \n\n  MyStruct internal my_struct;\n  MyStruct[] private my_struct_dynarray;\n  MyStruct[10] internal my_struct_staticarray;\n  mapping(uint256 => MyStruct) private my_struct_mapping;\n}\n\ncontract StorageMockWithEnums {\n  enum MyEnum { State1, State2 }\n \n  MyEnum public my_enum;\n  MyEnum[] internal my_enum_dynarray;\n  MyEnum[10] internal my_enum_staticarray;\n  mapping(uint256 => MyEnum) private my_enum_mapping;\n}\n\ncontract StorageMockWithComplexStructs {\n  struct MyStruct {\n    uint256[] uint256_dynarray;\n    mapping(string => StorageMockWithEnums.MyEnum) mapping_enums;\n    StorageMockWithStructs.MyStruct other_struct;\n  }\n\n  MyStruct internal my_struct;\n  StorageMockWithStructs.MyStruct internal my_other_struct;\n}\n\ncontract StorageMockWithRecursiveStructs {\n  struct MyStruct {\n    OtherStruct[] other_structs;\n  }\n\n  struct OtherStruct {\n    MyStruct my_struct;\n  }\n\n  MyStruct internal my_struct;\n}\n\ncontract StorageMockMixed is StorageMockWithStructs, StorageMockWithEnums, SimpleStorageMock {\n}\n",
  "sourcePath": "contracts/mocks/StorageMocks.sol",
  "sourceMap": "1545:421:18:-:0;;;;;;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "1545:421:18:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1583:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o",
  "abi": [
    {
      "inputs": [],
      "name": "my_contract",
      "outputs": [
        {
          "internalType": "contract SimpleStorageMock",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "ast": {
    "absolutePath": "contracts/mocks/StorageMocks.sol",
    "exportedSymbols": {
      "SimpleStorageMock": [
        4603
      ],
      "StorageMockMixed": [
        4787
      ],
      "StorageMockWithArrays": [
        4642
      ],
      "StorageMockWithBytes": [
        4610
      ],
      "StorageMockWithComplexStructs": [
        4770
      ],
      "StorageMockWithConstants": [
        4620
      ],
      "StorageMockWithContracts": [
        4717
      ],
      "StorageMockWithEnums": [
        4755
      ],
      "StorageMockWithFunctions": [
        4692
      ],
      "StorageMockWithMappings": [
        4658
      ],
      "StorageMockWithRecursiveStructs": [
        4780
      ],
      "StorageMockWithStructs": [
        4738
      ]
    },
    "id": 4788,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 4587,
        "literals": [
          "solidity",
          "^",
          "0.6",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:18"
      },
      {
        "absolutePath": "contracts/mocks/StorageMocks3.sol",
        "file": "./StorageMocks3.sol",
        "id": 4588,
        "nodeType": "ImportDirective",
        "scope": 4788,
        "sourceUnit": 4862,
        "src": "103:29:18",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 4603,
        "linearizedBaseContracts": [
          4603
        ],
        "name": "SimpleStorageMock",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "functionSelector": "26b2009f",
            "id": 4590,
            "mutability": "mutable",
            "name": "my_public_uint256",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4603,
            "src": "165:32:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 4589,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "165:7:18",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4592,
            "mutability": "mutable",
            "name": "my_internal_string",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4603,
            "src": "201:34:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 4591,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "201:6:18",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 4594,
            "mutability": "mutable",
            "name": "my_private_uint8",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4603,
            "src": "239:30:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 4593,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "239:5:18",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 4596,
            "mutability": "mutable",
            "name": "my_private_uint16",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4603,
            "src": "273:30:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_int8",
              "typeString": "int8"
            },
            "typeName": {
              "id": 4595,
              "name": "int8",
              "nodeType": "ElementaryTypeName",
              "src": "273:4:18",
              "typeDescriptions": {
                "typeIdentifier": "t_int8",
                "typeString": "int8"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 4598,
            "mutability": "mutable",
            "name": "my_private_bool",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4603,
            "src": "307:28:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 4597,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "307:4:18",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 4600,
            "mutability": "mutable",
            "name": "my_private_uint",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4603,
            "src": "339:28:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 4599,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "339:4:18",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 4602,
            "mutability": "mutable",
            "name": "my_private_address",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4603,
            "src": "371:34:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 4601,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "371:7:18",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "private"
          }
        ],
        "scope": 4788,
        "src": "134:274:18"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 4610,
        "linearizedBaseContracts": [
          4610
        ],
        "name": "StorageMockWithBytes",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 4605,
            "mutability": "mutable",
            "name": "my_bytes",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4610,
            "src": "444:23:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes_storage",
              "typeString": "bytes"
            },
            "typeName": {
              "id": 4604,
              "name": "bytes",
              "nodeType": "ElementaryTypeName",
              "src": "444:5:18",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes_storage_ptr",
                "typeString": "bytes"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 4607,
            "mutability": "mutable",
            "name": "my_bytes8",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4610,
            "src": "471:25:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes8",
              "typeString": "bytes8"
            },
            "typeName": {
              "id": 4606,
              "name": "bytes8",
              "nodeType": "ElementaryTypeName",
              "src": "471:6:18",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes8",
                "typeString": "bytes8"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 4609,
            "mutability": "mutable",
            "name": "my_bytes32",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4610,
            "src": "500:27:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 4608,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "500:7:18",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "internal"
          }
        ],
        "scope": 4788,
        "src": "410:120:18"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 4620,
        "linearizedBaseContracts": [
          4620
        ],
        "name": "StorageMockWithConstants",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "functionSelector": "26b2009f",
            "id": 4613,
            "mutability": "constant",
            "name": "my_public_uint256",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4620,
            "src": "570:47:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 4611,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "570:7:18",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "323536",
              "id": 4612,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "614:3:18",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_256_by_1",
                "typeString": "int_const 256"
              },
              "value": "256"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 4616,
            "mutability": "constant",
            "name": "my_internal_string",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4620,
            "src": "621:51:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory_ptr",
              "typeString": "string"
            },
            "typeName": {
              "id": 4614,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "621:6:18",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "666f6f",
              "id": 4615,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "667:5:18",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_41b1a0649752af1b28b3dc29a1556eee781e4a4c3a1f7f53f90fa834de098c4d",
                "typeString": "literal_string \"foo\""
              },
              "value": "foo"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 4619,
            "mutability": "constant",
            "name": "my_private_uint8",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4620,
            "src": "676:43:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 4617,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "676:5:18",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "38",
              "id": 4618,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "718:1:18",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_8_by_1",
                "typeString": "int_const 8"
              },
              "value": "8"
            },
            "visibility": "private"
          }
        ],
        "scope": 4788,
        "src": "532:190:18"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 4642,
        "linearizedBaseContracts": [
          4642
        ],
        "name": "StorageMockWithArrays",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "functionSelector": "0749d804",
            "id": 4623,
            "mutability": "mutable",
            "name": "my_public_uint256_dynarray",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4642,
            "src": "759:43:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
              "typeString": "uint256[]"
            },
            "typeName": {
              "baseType": {
                "id": 4621,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "759:7:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "id": 4622,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "759:9:18",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                "typeString": "uint256[]"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4626,
            "mutability": "mutable",
            "name": "my_internal_string_dynarray",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4642,
            "src": "806:45:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_string_storage_$dyn_storage",
              "typeString": "string[]"
            },
            "typeName": {
              "baseType": {
                "id": 4624,
                "name": "string",
                "nodeType": "ElementaryTypeName",
                "src": "806:6:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                }
              },
              "id": 4625,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "806:8:18",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                "typeString": "string[]"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 4629,
            "mutability": "mutable",
            "name": "my_private_address_dynarray",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4642,
            "src": "855:45:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_address_$dyn_storage",
              "typeString": "address[]"
            },
            "typeName": {
              "baseType": {
                "id": 4627,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "855:7:18",
                "stateMutability": "nonpayable",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "id": 4628,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "855:9:18",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                "typeString": "address[]"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "functionSelector": "03cfd947",
            "id": 4633,
            "mutability": "mutable",
            "name": "my_public_int8_staticarray",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4642,
            "src": "904:42:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_int8_$10_storage",
              "typeString": "int8[10]"
            },
            "typeName": {
              "baseType": {
                "id": 4630,
                "name": "int8",
                "nodeType": "ElementaryTypeName",
                "src": "904:4:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_int8",
                  "typeString": "int8"
                }
              },
              "id": 4632,
              "length": {
                "argumentTypes": null,
                "hexValue": "3130",
                "id": 4631,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "909:2:18",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_10_by_1",
                  "typeString": "int_const 10"
                },
                "value": "10"
              },
              "nodeType": "ArrayTypeName",
              "src": "904:8:18",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_int8_$10_storage_ptr",
                "typeString": "int8[10]"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4637,
            "mutability": "mutable",
            "name": "my_internal_bool_staticarray",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4642,
            "src": "950:46:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_bool_$20_storage",
              "typeString": "bool[20]"
            },
            "typeName": {
              "baseType": {
                "id": 4634,
                "name": "bool",
                "nodeType": "ElementaryTypeName",
                "src": "950:4:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              },
              "id": 4636,
              "length": {
                "argumentTypes": null,
                "hexValue": "3230",
                "id": 4635,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "955:2:18",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_20_by_1",
                  "typeString": "int_const 20"
                },
                "value": "20"
              },
              "nodeType": "ArrayTypeName",
              "src": "950:8:18",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_bool_$20_storage_ptr",
                "typeString": "bool[20]"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 4641,
            "mutability": "mutable",
            "name": "my_private_uint_staticarray",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4642,
            "src": "1000:44:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_uint256_$30_storage",
              "typeString": "uint256[30]"
            },
            "typeName": {
              "baseType": {
                "id": 4638,
                "name": "uint",
                "nodeType": "ElementaryTypeName",
                "src": "1000:4:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "id": 4640,
              "length": {
                "argumentTypes": null,
                "hexValue": "3330",
                "id": 4639,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "1005:2:18",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_30_by_1",
                  "typeString": "int_const 30"
                },
                "value": "30"
              },
              "nodeType": "ArrayTypeName",
              "src": "1000:8:18",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$30_storage_ptr",
                "typeString": "uint256[30]"
              }
            },
            "value": null,
            "visibility": "private"
          }
        ],
        "scope": 4788,
        "src": "724:323:18"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 4658,
        "linearizedBaseContracts": [
          4658
        ],
        "name": "StorageMockWithMappings",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "functionSelector": "1b8268d5",
            "id": 4646,
            "mutability": "mutable",
            "name": "my_mapping",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4658,
            "src": "1086:44:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
              "typeString": "mapping(uint256 => string)"
            },
            "typeName": {
              "id": 4645,
              "keyType": {
                "id": 4643,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1094:7:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "1086:26:18",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
                "typeString": "mapping(uint256 => string)"
              },
              "valueType": {
                "id": 4644,
                "name": "string",
                "nodeType": "ElementaryTypeName",
                "src": "1105:6:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4652,
            "mutability": "mutable",
            "name": "my_nested_mapping",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4658,
            "src": "1134:73:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_string_memory_ptr_$_t_address_$_$",
              "typeString": "mapping(uint256 => mapping(string => address))"
            },
            "typeName": {
              "id": 4651,
              "keyType": {
                "id": 4647,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1142:7:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "1134:46:18",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_string_memory_ptr_$_t_address_$_$",
                "typeString": "mapping(uint256 => mapping(string => address))"
              },
              "valueType": {
                "id": 4650,
                "keyType": {
                  "id": 4648,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "1161:6:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "nodeType": "Mapping",
                "src": "1153:26:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$",
                  "typeString": "mapping(string => address)"
                },
                "valueType": {
                  "id": 4649,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "1171:7:18",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 4657,
            "mutability": "mutable",
            "name": "my_mapping_with_arrays",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4658,
            "src": "1211:57:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_bool_$dyn_storage_$",
              "typeString": "mapping(uint256 => bool[])"
            },
            "typeName": {
              "id": 4656,
              "keyType": {
                "id": 4653,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1219:7:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "1211:26:18",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_bool_$dyn_storage_$",
                "typeString": "mapping(uint256 => bool[])"
              },
              "valueType": {
                "baseType": {
                  "id": 4654,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "1230:4:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "id": 4655,
                "length": null,
                "nodeType": "ArrayTypeName",
                "src": "1230:6:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr",
                  "typeString": "bool[]"
                }
              }
            },
            "value": null,
            "visibility": "private"
          }
        ],
        "scope": 4788,
        "src": "1049:222:18"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 4692,
        "linearizedBaseContracts": [
          4692
        ],
        "name": "StorageMockWithFunctions",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 4664,
            "mutability": "mutable",
            "name": "my_fun",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4692,
            "src": "1311:30:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
              "typeString": "function (uint256)"
            },
            "typeName": {
              "id": 4663,
              "nodeType": "FunctionTypeName",
              "parameterTypes": {
                "id": 4661,
                "nodeType": "ParameterList",
                "parameters": [
                  {
                    "constant": false,
                    "id": 4660,
                    "mutability": "mutable",
                    "name": "",
                    "nodeType": "VariableDeclaration",
                    "overrides": null,
                    "scope": 4663,
                    "src": "1320:4:18",
                    "stateVariable": false,
                    "storageLocation": "default",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "typeName": {
                      "id": 4659,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "1320:4:18",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "value": null,
                    "visibility": "internal"
                  }
                ],
                "src": "1319:6:18"
              },
              "returnParameterTypes": {
                "id": 4662,
                "nodeType": "ParameterList",
                "parameters": [],
                "src": "1335:0:18"
              },
              "src": "1311:30:18",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
                "typeString": "function (uint256)"
              },
              "visibility": "internal"
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 4673,
            "mutability": "mutable",
            "name": "my_fun_dynarray",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4692,
            "src": "1345:65:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$_$dyn_storage",
              "typeString": "function (string,string)[]"
            },
            "typeName": {
              "baseType": {
                "id": 4671,
                "nodeType": "FunctionTypeName",
                "parameterTypes": {
                  "id": 4669,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 4666,
                      "mutability": "mutable",
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4671,
                      "src": "1354:13:18",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 4665,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "1354:6:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 4668,
                      "mutability": "mutable",
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4671,
                      "src": "1369:13:18",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 4667,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "1369:6:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1353:30:18"
                },
                "returnParameterTypes": {
                  "id": 4670,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "1383:0:18"
                },
                "src": "1345:39:18",
                "stateMutability": "nonpayable",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                  "typeString": "function (string,string)"
                },
                "visibility": "internal"
              },
              "id": 4672,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "1345:40:18",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$_$dyn_storage_ptr",
                "typeString": "function (string,string)[]"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 4683,
            "mutability": "mutable",
            "name": "my_fun_staticarray",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4692,
            "src": "1414:64:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_function_internal_nonpayable$_t_uint256_$returns$_t_address_$_$10_storage",
              "typeString": "function (uint256) returns (address)[10]"
            },
            "typeName": {
              "baseType": {
                "id": 4680,
                "nodeType": "FunctionTypeName",
                "parameterTypes": {
                  "id": 4676,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 4675,
                      "mutability": "mutable",
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4680,
                      "src": "1423:4:18",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4674,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "1423:4:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1422:6:18"
                },
                "returnParameterTypes": {
                  "id": 4679,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 4678,
                      "mutability": "mutable",
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4680,
                      "src": "1438:7:18",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 4677,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "1438:7:18",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1437:9:18"
                },
                "src": "1414:33:18",
                "stateMutability": "nonpayable",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$_t_address_$",
                  "typeString": "function (uint256) returns (address)"
                },
                "visibility": "internal"
              },
              "id": 4682,
              "length": {
                "argumentTypes": null,
                "hexValue": "3130",
                "id": 4681,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "1447:2:18",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_10_by_1",
                  "typeString": "int_const 10"
                },
                "value": "10"
              },
              "nodeType": "ArrayTypeName",
              "src": "1414:36:18",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_function_internal_nonpayable$_t_uint256_$returns$_t_address_$_$10_storage_ptr",
                "typeString": "function (uint256) returns (address)[10]"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 4691,
            "mutability": "mutable",
            "name": "my_fun_mapping",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4692,
            "src": "1482:58:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_function_internal_nonpayable$_t_bool_$returns$__$_$",
              "typeString": "mapping(uint256 => function (bool))"
            },
            "typeName": {
              "id": 4690,
              "keyType": {
                "id": 4684,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1490:7:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "1482:34:18",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_function_internal_nonpayable$_t_bool_$returns$__$_$",
                "typeString": "mapping(uint256 => function (bool))"
              },
              "valueType": {
                "id": 4689,
                "nodeType": "FunctionTypeName",
                "parameterTypes": {
                  "id": 4687,
                  "nodeType": "ParameterList",
                  "parameters": [
                    {
                      "constant": false,
                      "id": 4686,
                      "mutability": "mutable",
                      "name": "",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4689,
                      "src": "1510:4:18",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 4685,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "1510:4:18",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "src": "1509:6:18"
                },
                "returnParameterTypes": {
                  "id": 4688,
                  "nodeType": "ParameterList",
                  "parameters": [],
                  "src": "1515:0:18"
                },
                "src": "1501:15:18",
                "stateMutability": "nonpayable",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$returns$__$",
                  "typeString": "function (bool)"
                },
                "visibility": "internal"
              }
            },
            "value": null,
            "visibility": "internal"
          }
        ],
        "scope": 4788,
        "src": "1273:270:18"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 4717,
        "linearizedBaseContracts": [
          4717
        ],
        "name": "StorageMockWithContracts",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "functionSelector": "baba442e",
            "id": 4694,
            "mutability": "mutable",
            "name": "my_contract",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4717,
            "src": "1583:36:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_SimpleStorageMock_$4603",
              "typeString": "contract SimpleStorageMock"
            },
            "typeName": {
              "contractScope": null,
              "id": 4693,
              "name": "SimpleStorageMock",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4603,
              "src": "1583:17:18",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SimpleStorageMock_$4603",
                "typeString": "contract SimpleStorageMock"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4697,
            "mutability": "mutable",
            "name": "my_contract_dynarray",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4717,
            "src": "1623:48:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_contract$_SimpleStorageMock_$4603_$dyn_storage",
              "typeString": "contract SimpleStorageMock[]"
            },
            "typeName": {
              "baseType": {
                "contractScope": null,
                "id": 4695,
                "name": "SimpleStorageMock",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 4603,
                "src": "1623:17:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_SimpleStorageMock_$4603",
                  "typeString": "contract SimpleStorageMock"
                }
              },
              "id": 4696,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "1623:19:18",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_contract$_SimpleStorageMock_$4603_$dyn_storage_ptr",
                "typeString": "contract SimpleStorageMock[]"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 4701,
            "mutability": "mutable",
            "name": "my_contract_staticarray",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4717,
            "src": "1675:54:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_contract$_SimpleStorageMock_$4603_$10_storage",
              "typeString": "contract SimpleStorageMock[10]"
            },
            "typeName": {
              "baseType": {
                "contractScope": null,
                "id": 4698,
                "name": "SimpleStorageMock",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 4603,
                "src": "1675:17:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_SimpleStorageMock_$4603",
                  "typeString": "contract SimpleStorageMock"
                }
              },
              "id": 4700,
              "length": {
                "argumentTypes": null,
                "hexValue": "3130",
                "id": 4699,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "1693:2:18",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_10_by_1",
                  "typeString": "int_const 10"
                },
                "value": "10"
              },
              "nodeType": "ArrayTypeName",
              "src": "1675:21:18",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_contract$_SimpleStorageMock_$4603_$10_storage_ptr",
                "typeString": "contract SimpleStorageMock[10]"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 4705,
            "mutability": "mutable",
            "name": "my_contract_mapping",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4717,
            "src": "1733:65:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_contract$_SimpleStorageMock_$4603_$",
              "typeString": "mapping(uint256 => contract SimpleStorageMock)"
            },
            "typeName": {
              "id": 4704,
              "keyType": {
                "id": 4702,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1741:7:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "1733:37:18",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_contract$_SimpleStorageMock_$4603_$",
                "typeString": "mapping(uint256 => contract SimpleStorageMock)"
              },
              "valueType": {
                "contractScope": null,
                "id": 4703,
                "name": "SimpleStorageMock",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 4603,
                "src": "1752:17:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_SimpleStorageMock_$4603",
                  "typeString": "contract SimpleStorageMock"
                }
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 4710,
            "mutability": "mutable",
            "name": "my_contract_dynarray_mapping",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4717,
            "src": "1802:76:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_contract$_SimpleStorageMock_$4603_$dyn_storage_$",
              "typeString": "mapping(uint256 => contract SimpleStorageMock[])"
            },
            "typeName": {
              "id": 4709,
              "keyType": {
                "id": 4706,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1810:7:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "1802:39:18",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_contract$_SimpleStorageMock_$4603_$dyn_storage_$",
                "typeString": "mapping(uint256 => contract SimpleStorageMock[])"
              },
              "valueType": {
                "baseType": {
                  "contractScope": null,
                  "id": 4707,
                  "name": "SimpleStorageMock",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 4603,
                  "src": "1821:17:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_SimpleStorageMock_$4603",
                    "typeString": "contract SimpleStorageMock"
                  }
                },
                "id": 4708,
                "length": null,
                "nodeType": "ArrayTypeName",
                "src": "1821:19:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_contract$_SimpleStorageMock_$4603_$dyn_storage_ptr",
                  "typeString": "contract SimpleStorageMock[]"
                }
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 4716,
            "mutability": "mutable",
            "name": "my_contract_staticarray_mapping",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4717,
            "src": "1882:81:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_contract$_SimpleStorageMock_$4603_$10_storage_$",
              "typeString": "mapping(uint256 => contract SimpleStorageMock[10])"
            },
            "typeName": {
              "id": 4715,
              "keyType": {
                "id": 4711,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1890:7:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "1882:41:18",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_contract$_SimpleStorageMock_$4603_$10_storage_$",
                "typeString": "mapping(uint256 => contract SimpleStorageMock[10])"
              },
              "valueType": {
                "baseType": {
                  "contractScope": null,
                  "id": 4712,
                  "name": "SimpleStorageMock",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 4603,
                  "src": "1901:17:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_SimpleStorageMock_$4603",
                    "typeString": "contract SimpleStorageMock"
                  }
                },
                "id": 4714,
                "length": {
                  "argumentTypes": null,
                  "hexValue": "3130",
                  "id": 4713,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "1919:2:18",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_10_by_1",
                    "typeString": "int_const 10"
                  },
                  "value": "10"
                },
                "nodeType": "ArrayTypeName",
                "src": "1901:21:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_contract$_SimpleStorageMock_$4603_$10_storage_ptr",
                  "typeString": "contract SimpleStorageMock[10]"
                }
              }
            },
            "value": null,
            "visibility": "private"
          }
        ],
        "scope": 4788,
        "src": "1545:421:18"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 4738,
        "linearizedBaseContracts": [
          4738
        ],
        "name": "StorageMockWithStructs",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "StorageMockWithStructs.MyStruct",
            "id": 4724,
            "members": [
              {
                "constant": false,
                "id": 4719,
                "mutability": "mutable",
                "name": "struct_uint256",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 4724,
                "src": "2026:22:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 4718,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2026:7:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4721,
                "mutability": "mutable",
                "name": "struct_string",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 4724,
                "src": "2054:20:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 4720,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "2054:6:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4723,
                "mutability": "mutable",
                "name": "struct_address",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 4724,
                "src": "2080:22:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 4722,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2080:7:18",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "MyStruct",
            "nodeType": "StructDefinition",
            "scope": 4738,
            "src": "2004:103:18",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4726,
            "mutability": "mutable",
            "name": "my_struct",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4738,
            "src": "2113:27:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_MyStruct_$4724_storage",
              "typeString": "struct StorageMockWithStructs.MyStruct"
            },
            "typeName": {
              "contractScope": null,
              "id": 4725,
              "name": "MyStruct",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4724,
              "src": "2113:8:18",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_MyStruct_$4724_storage_ptr",
                "typeString": "struct StorageMockWithStructs.MyStruct"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 4729,
            "mutability": "mutable",
            "name": "my_struct_dynarray",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4738,
            "src": "2144:37:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_struct$_MyStruct_$4724_storage_$dyn_storage",
              "typeString": "struct StorageMockWithStructs.MyStruct[]"
            },
            "typeName": {
              "baseType": {
                "contractScope": null,
                "id": 4727,
                "name": "MyStruct",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 4724,
                "src": "2144:8:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_MyStruct_$4724_storage_ptr",
                  "typeString": "struct StorageMockWithStructs.MyStruct"
                }
              },
              "id": 4728,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "2144:10:18",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_struct$_MyStruct_$4724_storage_$dyn_storage_ptr",
                "typeString": "struct StorageMockWithStructs.MyStruct[]"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 4733,
            "mutability": "mutable",
            "name": "my_struct_staticarray",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4738,
            "src": "2185:43:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_struct$_MyStruct_$4724_storage_$10_storage",
              "typeString": "struct StorageMockWithStructs.MyStruct[10]"
            },
            "typeName": {
              "baseType": {
                "contractScope": null,
                "id": 4730,
                "name": "MyStruct",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 4724,
                "src": "2185:8:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_MyStruct_$4724_storage_ptr",
                  "typeString": "struct StorageMockWithStructs.MyStruct"
                }
              },
              "id": 4732,
              "length": {
                "argumentTypes": null,
                "hexValue": "3130",
                "id": 4731,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "2194:2:18",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_10_by_1",
                  "typeString": "int_const 10"
                },
                "value": "10"
              },
              "nodeType": "ArrayTypeName",
              "src": "2185:12:18",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_struct$_MyStruct_$4724_storage_$10_storage_ptr",
                "typeString": "struct StorageMockWithStructs.MyStruct[10]"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 4737,
            "mutability": "mutable",
            "name": "my_struct_mapping",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4738,
            "src": "2232:54:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_MyStruct_$4724_storage_$",
              "typeString": "mapping(uint256 => struct StorageMockWithStructs.MyStruct)"
            },
            "typeName": {
              "id": 4736,
              "keyType": {
                "id": 4734,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "2240:7:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "2232:28:18",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_MyStruct_$4724_storage_$",
                "typeString": "mapping(uint256 => struct StorageMockWithStructs.MyStruct)"
              },
              "valueType": {
                "contractScope": null,
                "id": 4735,
                "name": "MyStruct",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 4724,
                "src": "2251:8:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_MyStruct_$4724_storage_ptr",
                  "typeString": "struct StorageMockWithStructs.MyStruct"
                }
              }
            },
            "value": null,
            "visibility": "private"
          }
        ],
        "scope": 4788,
        "src": "1968:321:18"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 4755,
        "linearizedBaseContracts": [
          4755
        ],
        "name": "StorageMockWithEnums",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "StorageMockWithEnums.MyEnum",
            "id": 4741,
            "members": [
              {
                "id": 4739,
                "name": "State1",
                "nodeType": "EnumValue",
                "src": "2339:6:18"
              },
              {
                "id": 4740,
                "name": "State2",
                "nodeType": "EnumValue",
                "src": "2347:6:18"
              }
            ],
            "name": "MyEnum",
            "nodeType": "EnumDefinition",
            "src": "2325:30:18"
          },
          {
            "constant": false,
            "functionSelector": "a43ced45",
            "id": 4743,
            "mutability": "mutable",
            "name": "my_enum",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4755,
            "src": "2360:21:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_enum$_MyEnum_$4741",
              "typeString": "enum StorageMockWithEnums.MyEnum"
            },
            "typeName": {
              "contractScope": null,
              "id": 4742,
              "name": "MyEnum",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4741,
              "src": "2360:6:18",
              "typeDescriptions": {
                "typeIdentifier": "t_enum$_MyEnum_$4741",
                "typeString": "enum StorageMockWithEnums.MyEnum"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4746,
            "mutability": "mutable",
            "name": "my_enum_dynarray",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4755,
            "src": "2385:34:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_enum$_MyEnum_$4741_$dyn_storage",
              "typeString": "enum StorageMockWithEnums.MyEnum[]"
            },
            "typeName": {
              "baseType": {
                "contractScope": null,
                "id": 4744,
                "name": "MyEnum",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 4741,
                "src": "2385:6:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_MyEnum_$4741",
                  "typeString": "enum StorageMockWithEnums.MyEnum"
                }
              },
              "id": 4745,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "2385:8:18",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_enum$_MyEnum_$4741_$dyn_storage_ptr",
                "typeString": "enum StorageMockWithEnums.MyEnum[]"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 4750,
            "mutability": "mutable",
            "name": "my_enum_staticarray",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4755,
            "src": "2423:39:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_enum$_MyEnum_$4741_$10_storage",
              "typeString": "enum StorageMockWithEnums.MyEnum[10]"
            },
            "typeName": {
              "baseType": {
                "contractScope": null,
                "id": 4747,
                "name": "MyEnum",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 4741,
                "src": "2423:6:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_MyEnum_$4741",
                  "typeString": "enum StorageMockWithEnums.MyEnum"
                }
              },
              "id": 4749,
              "length": {
                "argumentTypes": null,
                "hexValue": "3130",
                "id": 4748,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "2430:2:18",
                "subdenomination": null,
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_10_by_1",
                  "typeString": "int_const 10"
                },
                "value": "10"
              },
              "nodeType": "ArrayTypeName",
              "src": "2423:10:18",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_enum$_MyEnum_$4741_$10_storage_ptr",
                "typeString": "enum StorageMockWithEnums.MyEnum[10]"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 4754,
            "mutability": "mutable",
            "name": "my_enum_mapping",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4755,
            "src": "2466:50:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_enum$_MyEnum_$4741_$",
              "typeString": "mapping(uint256 => enum StorageMockWithEnums.MyEnum)"
            },
            "typeName": {
              "id": 4753,
              "keyType": {
                "id": 4751,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "2474:7:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "2466:26:18",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_enum$_MyEnum_$4741_$",
                "typeString": "mapping(uint256 => enum StorageMockWithEnums.MyEnum)"
              },
              "valueType": {
                "contractScope": null,
                "id": 4752,
                "name": "MyEnum",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 4741,
                "src": "2485:6:18",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_MyEnum_$4741",
                  "typeString": "enum StorageMockWithEnums.MyEnum"
                }
              }
            },
            "value": null,
            "visibility": "private"
          }
        ],
        "scope": 4788,
        "src": "2291:228:18"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 4770,
        "linearizedBaseContracts": [
          4770
        ],
        "name": "StorageMockWithComplexStructs",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "StorageMockWithComplexStructs.MyStruct",
            "id": 4765,
            "members": [
              {
                "constant": false,
                "id": 4758,
                "mutability": "mutable",
                "name": "uint256_dynarray",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 4765,
                "src": "2586:26:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                  "typeString": "uint256[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 4756,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2586:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4757,
                  "length": null,
                  "nodeType": "ArrayTypeName",
                  "src": "2586:9:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                    "typeString": "uint256[]"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4762,
                "mutability": "mutable",
                "name": "mapping_enums",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 4765,
                "src": "2618:60:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_enum$_MyEnum_$4741_$",
                  "typeString": "mapping(string => enum StorageMockWithEnums.MyEnum)"
                },
                "typeName": {
                  "id": 4761,
                  "keyType": {
                    "id": 4759,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2626:6:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "2618:46:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_enum$_MyEnum_$4741_$",
                    "typeString": "mapping(string => enum StorageMockWithEnums.MyEnum)"
                  },
                  "valueType": {
                    "contractScope": null,
                    "id": 4760,
                    "name": "StorageMockWithEnums.MyEnum",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4741,
                    "src": "2636:27:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_MyEnum_$4741",
                      "typeString": "enum StorageMockWithEnums.MyEnum"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4764,
                "mutability": "mutable",
                "name": "other_struct",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 4765,
                "src": "2684:44:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_MyStruct_$4724_storage_ptr",
                  "typeString": "struct StorageMockWithStructs.MyStruct"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 4763,
                  "name": "StorageMockWithStructs.MyStruct",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 4724,
                  "src": "2684:31:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_MyStruct_$4724_storage_ptr",
                    "typeString": "struct StorageMockWithStructs.MyStruct"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "MyStruct",
            "nodeType": "StructDefinition",
            "scope": 4770,
            "src": "2564:169:18",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4767,
            "mutability": "mutable",
            "name": "my_struct",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4770,
            "src": "2737:27:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_MyStruct_$4765_storage",
              "typeString": "struct StorageMockWithComplexStructs.MyStruct"
            },
            "typeName": {
              "contractScope": null,
              "id": 4766,
              "name": "MyStruct",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4765,
              "src": "2737:8:18",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_MyStruct_$4765_storage_ptr",
                "typeString": "struct StorageMockWithComplexStructs.MyStruct"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 4769,
            "mutability": "mutable",
            "name": "my_other_struct",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4770,
            "src": "2768:56:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_MyStruct_$4724_storage",
              "typeString": "struct StorageMockWithStructs.MyStruct"
            },
            "typeName": {
              "contractScope": null,
              "id": 4768,
              "name": "StorageMockWithStructs.MyStruct",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4724,
              "src": "2768:31:18",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_MyStruct_$4724_storage_ptr",
                "typeString": "struct StorageMockWithStructs.MyStruct"
              }
            },
            "value": null,
            "visibility": "internal"
          }
        ],
        "scope": 4788,
        "src": "2521:306:18"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 4780,
        "linearizedBaseContracts": [
          4780
        ],
        "name": "StorageMockWithRecursiveStructs",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "StorageMockWithRecursiveStructs.MyStruct",
            "id": 4774,
            "members": [
              {
                "constant": false,
                "id": 4773,
                "mutability": "mutable",
                "name": "other_structs",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 4774,
                "src": "2896:27:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_struct$_OtherStruct_$4777_storage_$dyn_storage_ptr",
                  "typeString": "struct StorageMockWithRecursiveStructs.OtherStruct[]"
                },
                "typeName": {
                  "baseType": {
                    "contractScope": null,
                    "id": 4771,
                    "name": "OtherStruct",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4777,
                    "src": "2896:11:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_OtherStruct_$4777_storage_ptr",
                      "typeString": "struct StorageMockWithRecursiveStructs.OtherStruct"
                    }
                  },
                  "id": 4772,
                  "length": null,
                  "nodeType": "ArrayTypeName",
                  "src": "2896:13:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_OtherStruct_$4777_storage_$dyn_storage_ptr",
                    "typeString": "struct StorageMockWithRecursiveStructs.OtherStruct[]"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "MyStruct",
            "nodeType": "StructDefinition",
            "scope": 4780,
            "src": "2874:54:18",
            "visibility": "public"
          },
          {
            "canonicalName": "StorageMockWithRecursiveStructs.OtherStruct",
            "id": 4777,
            "members": [
              {
                "constant": false,
                "id": 4776,
                "mutability": "mutable",
                "name": "my_struct",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 4777,
                "src": "2957:18:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_MyStruct_$4774_storage_ptr",
                  "typeString": "struct StorageMockWithRecursiveStructs.MyStruct"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 4775,
                  "name": "MyStruct",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 4774,
                  "src": "2957:8:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_MyStruct_$4774_storage_ptr",
                    "typeString": "struct StorageMockWithRecursiveStructs.MyStruct"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "OtherStruct",
            "nodeType": "StructDefinition",
            "scope": 4780,
            "src": "2932:48:18",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4779,
            "mutability": "mutable",
            "name": "my_struct",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 4780,
            "src": "2984:27:18",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_MyStruct_$4774_storage",
              "typeString": "struct StorageMockWithRecursiveStructs.MyStruct"
            },
            "typeName": {
              "contractScope": null,
              "id": 4778,
              "name": "MyStruct",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4774,
              "src": "2984:8:18",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_MyStruct_$4774_storage_ptr",
                "typeString": "struct StorageMockWithRecursiveStructs.MyStruct"
              }
            },
            "value": null,
            "visibility": "internal"
          }
        ],
        "scope": 4788,
        "src": "2829:185:18"
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 4781,
              "name": "StorageMockWithStructs",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4738,
              "src": "3045:22:18",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_StorageMockWithStructs_$4738",
                "typeString": "contract StorageMockWithStructs"
              }
            },
            "id": 4782,
            "nodeType": "InheritanceSpecifier",
            "src": "3045:22:18"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 4783,
              "name": "StorageMockWithEnums",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4755,
              "src": "3069:20:18",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_StorageMockWithEnums_$4755",
                "typeString": "contract StorageMockWithEnums"
              }
            },
            "id": 4784,
            "nodeType": "InheritanceSpecifier",
            "src": "3069:20:18"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 4785,
              "name": "SimpleStorageMock",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4603,
              "src": "3091:17:18",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SimpleStorageMock_$4603",
                "typeString": "contract SimpleStorageMock"
              }
            },
            "id": 4786,
            "nodeType": "InheritanceSpecifier",
            "src": "3091:17:18"
          }
        ],
        "contractDependencies": [
          4603,
          4738,
          4755
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 4787,
        "linearizedBaseContracts": [
          4787,
          4603,
          4755,
          4738
        ],
        "name": "StorageMockMixed",
        "nodeType": "ContractDefinition",
        "nodes": [],
        "scope": 4788,
        "src": "3016:96:18"
      }
    ],
    "src": "0:3113:18"
  },
  "bytecode": "0x60806040523480156100115760006000fd5b50610017565b60d6806100256000396000f3fe608060405234801560105760006000fd5b5060043610602c5760003560e01c8063baba442e14603257602c565b60006000fd5b6038607a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fea26469706673582212200598300424b3e0dcec9173397533612cf0f86c5a9149a83fcabf8a53aa56df0364736f6c634300060a0033",
  "deployedBytecode": "0x608060405234801560105760006000fd5b5060043610602c5760003560e01c8063baba442e14603257602c565b60006000fd5b6038607a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fea26469706673582212200598300424b3e0dcec9173397533612cf0f86c5a9149a83fcabf8a53aa56df0364736f6c634300060a0033",
  "compiler": {
    "name": "solc",
    "version": "0.6.10+commit.00c0fcaf.Emscripten.clang",
    "optimizer": {},
    "evmVersion": "constantinople"
  }
}
