{
  "contractName": "PublicResolver",
  "abi": [
    {
      "constant": true,
      "inputs": [
        {
          "name": "interfaceID",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "node",
          "type": "bytes32"
        },
        {
          "name": "key",
          "type": "string"
        },
        {
          "name": "value",
          "type": "string"
        }
      ],
      "name": "setText",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "node",
          "type": "bytes32"
        },
        {
          "name": "contentTypes",
          "type": "uint256"
        }
      ],
      "name": "ABI",
      "outputs": [
        {
          "name": "contentType",
          "type": "uint256"
        },
        {
          "name": "data",
          "type": "bytes"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "node",
          "type": "bytes32"
        },
        {
          "name": "x",
          "type": "bytes32"
        },
        {
          "name": "y",
          "type": "bytes32"
        }
      ],
      "name": "setPubkey",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "node",
          "type": "bytes32"
        }
      ],
      "name": "content",
      "outputs": [
        {
          "name": "ret",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "node",
          "type": "bytes32"
        }
      ],
      "name": "addr",
      "outputs": [
        {
          "name": "ret",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "node",
          "type": "bytes32"
        },
        {
          "name": "key",
          "type": "string"
        }
      ],
      "name": "text",
      "outputs": [
        {
          "name": "ret",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "node",
          "type": "bytes32"
        },
        {
          "name": "contentType",
          "type": "uint256"
        },
        {
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "setABI",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "node",
          "type": "bytes32"
        }
      ],
      "name": "name",
      "outputs": [
        {
          "name": "ret",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "node",
          "type": "bytes32"
        },
        {
          "name": "name",
          "type": "string"
        }
      ],
      "name": "setName",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "node",
          "type": "bytes32"
        },
        {
          "name": "hash",
          "type": "bytes32"
        }
      ],
      "name": "setContent",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "node",
          "type": "bytes32"
        }
      ],
      "name": "pubkey",
      "outputs": [
        {
          "name": "x",
          "type": "bytes32"
        },
        {
          "name": "y",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "node",
          "type": "bytes32"
        },
        {
          "name": "addr",
          "type": "address"
        }
      ],
      "name": "setAddr",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "ensAddr",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "node",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "a",
          "type": "address"
        }
      ],
      "name": "AddrChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "node",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "hash",
          "type": "bytes32"
        }
      ],
      "name": "ContentChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "node",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "name",
          "type": "string"
        }
      ],
      "name": "NameChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "node",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "contentType",
          "type": "uint256"
        }
      ],
      "name": "ABIChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "node",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "x",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "y",
          "type": "bytes32"
        }
      ],
      "name": "PubkeyChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "node",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "indexedKey",
          "type": "string"
        },
        {
          "indexed": false,
          "name": "key",
          "type": "string"
        }
      ],
      "name": "TextChanged",
      "type": "event"
    }
  ],
  "bytecode": "0x6060604052341561000f57600080fd5b604051602080611a3983398101604052808051906020019091905050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506119be8061007b6000396000f3006060604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ffc9a7146100ca57806310f13a8c146101245780632203ab56146101d157806329cd62ea146102815780632dff6941146102c25780633b3b57de1461030557806359d1d43c1461036c578063623195b01461044f578063691f3431146104c25780637737221314610562578063c3d014d6146105cc578063c869023314610600578063d5fa2b0014610652575b600080fd5b34156100d557600080fd5b61010a60048080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916906020019091905050610698565b604051808215151515815260200191505060405180910390f35b341561012f57600080fd5b6101cf60048080356000191690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610987565b005b34156101dc57600080fd5b6101ff600480803560001916906020019091908035906020019091905050610c22565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561024557808201518184015260208101905061022a565b50505050905090810190601f1680156102725780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b341561028c57600080fd5b6102c06004808035600019169060200190919080356000191690602001909190803560001916906020019091905050610d6b565b005b34156102cd57600080fd5b6102e7600480803560001916906020019091905050610f18565b60405180826000191660001916815260200191505060405180910390f35b341561031057600080fd5b61032a600480803560001916906020019091905050610f40565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561037757600080fd5b6103d460048080356000191690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610f88565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104145780820151818401526020810190506103f9565b50505050905090810190601f1680156104415780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561045a57600080fd5b6104c060048080356000191690602001909190803590602001909190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506110b8565b005b34156104cd57600080fd5b6104e760048080356000191690602001909190505061123d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561052757808201518184015260208101905061050c565b50505050905090810190601f1680156105545780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561056d57600080fd5b6105ca60048080356000191690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611303565b005b34156105d757600080fd5b6105fe600480803560001916906020019091908035600019169060200190919050506114d1565b005b341561060b57600080fd5b610625600480803560001916906020019091905050611636565b60405180836000191660001916815260200182600019166000191681526020019250505060405180910390f35b341561065d57600080fd5b61069660048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611686565b005b6000633b3b57de7c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610769575063d8389dc57c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107d4575063691f34317c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061083f5750632203ab567c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806108aa575063c86902337c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061091557506359d1d43c7c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061098057506301ffc9a77c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b823373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1515610a3f57600080fd5b6102c65a03f11515610a5057600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff16141515610a7c57600080fd5b81600160008660001916600019168152602001908152602001600020600501846040518082805190602001908083835b602083101515610ad15780518252602082019150602081019050602083039250610aac565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190610b17929190611845565b50826040518082805190602001908083835b602083101515610b4e5780518252602082019150602081019050602083039250610b29565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902084600019167fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a7550856040518080602001828103825283818151815260200191508051906020019080838360005b83811015610be2578082015181840152602081019050610bc7565b50505050905090810190601f168015610c0f5780820380516001836020036101000a031916815260200191505b509250505060405180910390a350505050565b6000610c2c6118c5565b60006001600086600019166000191681526020019081526020016000209050600192505b8383111515610d5e57600084841614158015610c9557506000816006016000858152602001908152602001600020805460018160011615610100020316600290049050115b15610d4f578060060160008481526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d435780601f10610d1857610100808354040283529160200191610d43565b820191906000526020600020905b815481529060010190602001808311610d2657829003601f168201915b50505050509150610d63565b6001839060020a029250610c50565b600092505b509250929050565b823373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1515610e2357600080fd5b6102c65a03f11515610e3457600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff16141515610e6057600080fd5b6040805190810160405280846000191681526020018360001916815250600160008660001916600019168152602001908152602001600020600301600082015181600001906000191690556020820151816001019060001916905590505083600019167f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46848460405180836000191660001916815260200182600019166000191681526020019250505060405180910390a250505050565b6000600160008360001916600019168152602001908152602001600020600101549050919050565b600060016000836000191660001916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b610f906118d9565b600160008460001916600019168152602001908152602001600020600501826040518082805190602001908083835b602083101515610fe45780518252602082019150602081019050602083039250610fbf565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110ab5780601f10611080576101008083540402835291602001916110ab565b820191906000526020600020905b81548152906001019060200180831161108e57829003601f168201915b5050505050905092915050565b823373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b151561117057600080fd5b6102c65a03f1151561118157600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff161415156111ad57600080fd5b60008360018503161415156111c157600080fd5b81600160008660001916600019168152602001908152602001600020600601600085815260200190815260200160002090805190602001906112049291906118ed565b508284600019167faa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe360405160405180910390a350505050565b6112456118d9565b6001600083600019166000191681526020019081526020016000206002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112f75780601f106112cc576101008083540402835291602001916112f7565b820191906000526020600020905b8154815290600101906020018083116112da57829003601f168201915b50505050509050919050565b813373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15156113bb57600080fd5b6102c65a03f115156113cc57600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff161415156113f857600080fd5b81600160008560001916600019168152602001908152602001600020600201908051906020019061142a929190611845565b5082600019167fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f7836040518080602001828103825283818151815260200191508051906020019080838360005b83811015611492578082015181840152602081019050611477565b50505050905090810190601f1680156114bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050565b813373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b151561158957600080fd5b6102c65a03f1151561159a57600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff161415156115c657600080fd5b81600160008560001916600019168152602001908152602001600020600101816000191690555082600019167f0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc8360405180826000191660001916815260200191505060405180910390a2505050565b600080600160008460001916600019168152602001908152602001600020600301600001546001600085600019166000191681526020019081526020016000206003016001015491509150915091565b813373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b151561173e57600080fd5b6102c65a03f1151561174f57600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff1614151561177b57600080fd5b8160016000856000191660001916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600019167f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd283604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a2505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061188657805160ff19168380011785556118b4565b828001600101855582156118b4579182015b828111156118b3578251825591602001919060010190611898565b5b5090506118c1919061196d565b5090565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061192e57805160ff191683800117855561195c565b8280016001018555821561195c579182015b8281111561195b578251825591602001919060010190611940565b5b509050611969919061196d565b5090565b61198f91905b8082111561198b576000816000905550600101611973565b5090565b905600a165627a7a7230582089936f2b3821fdcff1dc6520bde285c319002ef45f6f77f032261b658f8f9ae30029",
  "deployedBytecode": "0x6060604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ffc9a7146100ca57806310f13a8c146101245780632203ab56146101d157806329cd62ea146102815780632dff6941146102c25780633b3b57de1461030557806359d1d43c1461036c578063623195b01461044f578063691f3431146104c25780637737221314610562578063c3d014d6146105cc578063c869023314610600578063d5fa2b0014610652575b600080fd5b34156100d557600080fd5b61010a60048080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916906020019091905050610698565b604051808215151515815260200191505060405180910390f35b341561012f57600080fd5b6101cf60048080356000191690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610987565b005b34156101dc57600080fd5b6101ff600480803560001916906020019091908035906020019091905050610c22565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561024557808201518184015260208101905061022a565b50505050905090810190601f1680156102725780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b341561028c57600080fd5b6102c06004808035600019169060200190919080356000191690602001909190803560001916906020019091905050610d6b565b005b34156102cd57600080fd5b6102e7600480803560001916906020019091905050610f18565b60405180826000191660001916815260200191505060405180910390f35b341561031057600080fd5b61032a600480803560001916906020019091905050610f40565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561037757600080fd5b6103d460048080356000191690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610f88565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104145780820151818401526020810190506103f9565b50505050905090810190601f1680156104415780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561045a57600080fd5b6104c060048080356000191690602001909190803590602001909190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506110b8565b005b34156104cd57600080fd5b6104e760048080356000191690602001909190505061123d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561052757808201518184015260208101905061050c565b50505050905090810190601f1680156105545780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561056d57600080fd5b6105ca60048080356000191690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611303565b005b34156105d757600080fd5b6105fe600480803560001916906020019091908035600019169060200190919050506114d1565b005b341561060b57600080fd5b610625600480803560001916906020019091905050611636565b60405180836000191660001916815260200182600019166000191681526020019250505060405180910390f35b341561065d57600080fd5b61069660048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611686565b005b6000633b3b57de7c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610769575063d8389dc57c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107d4575063691f34317c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061083f5750632203ab567c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806108aa575063c86902337c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061091557506359d1d43c7c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061098057506301ffc9a77c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b823373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1515610a3f57600080fd5b6102c65a03f11515610a5057600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff16141515610a7c57600080fd5b81600160008660001916600019168152602001908152602001600020600501846040518082805190602001908083835b602083101515610ad15780518252602082019150602081019050602083039250610aac565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190610b17929190611845565b50826040518082805190602001908083835b602083101515610b4e5780518252602082019150602081019050602083039250610b29565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902084600019167fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a7550856040518080602001828103825283818151815260200191508051906020019080838360005b83811015610be2578082015181840152602081019050610bc7565b50505050905090810190601f168015610c0f5780820380516001836020036101000a031916815260200191505b509250505060405180910390a350505050565b6000610c2c6118c5565b60006001600086600019166000191681526020019081526020016000209050600192505b8383111515610d5e57600084841614158015610c9557506000816006016000858152602001908152602001600020805460018160011615610100020316600290049050115b15610d4f578060060160008481526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d435780601f10610d1857610100808354040283529160200191610d43565b820191906000526020600020905b815481529060010190602001808311610d2657829003601f168201915b50505050509150610d63565b6001839060020a029250610c50565b600092505b509250929050565b823373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1515610e2357600080fd5b6102c65a03f11515610e3457600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff16141515610e6057600080fd5b6040805190810160405280846000191681526020018360001916815250600160008660001916600019168152602001908152602001600020600301600082015181600001906000191690556020820151816001019060001916905590505083600019167f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46848460405180836000191660001916815260200182600019166000191681526020019250505060405180910390a250505050565b6000600160008360001916600019168152602001908152602001600020600101549050919050565b600060016000836000191660001916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b610f906118d9565b600160008460001916600019168152602001908152602001600020600501826040518082805190602001908083835b602083101515610fe45780518252602082019150602081019050602083039250610fbf565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110ab5780601f10611080576101008083540402835291602001916110ab565b820191906000526020600020905b81548152906001019060200180831161108e57829003601f168201915b5050505050905092915050565b823373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b151561117057600080fd5b6102c65a03f1151561118157600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff161415156111ad57600080fd5b60008360018503161415156111c157600080fd5b81600160008660001916600019168152602001908152602001600020600601600085815260200190815260200160002090805190602001906112049291906118ed565b508284600019167faa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe360405160405180910390a350505050565b6112456118d9565b6001600083600019166000191681526020019081526020016000206002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112f75780601f106112cc576101008083540402835291602001916112f7565b820191906000526020600020905b8154815290600101906020018083116112da57829003601f168201915b50505050509050919050565b813373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15156113bb57600080fd5b6102c65a03f115156113cc57600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff161415156113f857600080fd5b81600160008560001916600019168152602001908152602001600020600201908051906020019061142a929190611845565b5082600019167fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f7836040518080602001828103825283818151815260200191508051906020019080838360005b83811015611492578082015181840152602081019050611477565b50505050905090810190601f1680156114bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050565b813373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b151561158957600080fd5b6102c65a03f1151561159a57600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff161415156115c657600080fd5b81600160008560001916600019168152602001908152602001600020600101816000191690555082600019167f0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc8360405180826000191660001916815260200191505060405180910390a2505050565b600080600160008460001916600019168152602001908152602001600020600301600001546001600085600019166000191681526020019081526020016000206003016001015491509150915091565b813373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b151561173e57600080fd5b6102c65a03f1151561174f57600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff1614151561177b57600080fd5b8160016000856000191660001916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600019167f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd283604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a2505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061188657805160ff19168380011785556118b4565b828001600101855582156118b4579182015b828111156118b3578251825591602001919060010190611898565b5b5090506118c1919061196d565b5090565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061192e57805160ff191683800117855561195c565b8280016001018555821561195c579182015b8281111561195b578251825591602001919060010190611940565b5b509050611969919061196d565b5090565b61198f91905b8082111561198b576000816000905550600101611973565b5090565b905600a165627a7a7230582089936f2b3821fdcff1dc6520bde285c319002ef45f6f77f032261b658f8f9ae30029",
  "sourceMap": "154:7240:47:-;;;1475:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1536:7;1530:3;;:13;;;;;;;;;;;;;;;;;;1475:75;154:7240;;;;;;",
  "deployedSourceMap": "154:7240:47:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1801:437;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7233:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4785:436;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6459:162:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3165:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2397:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6838:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5523:279:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3988:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4328:136:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3642:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6044:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2723:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1801:437;1866:4;272:10;1904:17;;1889:32;;;:11;:32;;;;:86;;;;327:10;1955:20;;1940:35;;;:11;:35;;;;1889:86;:137;;;;379:10;2009:17;;1994:32;;;:11;:32;;;;1889:137;:187;;;;430:10;2060:16;;2045:31;;;:11;:31;;;;1889:187;:240;;;;484:10;2110:19;;2095:34;;;:11;:34;;;;1889:240;:291;;;;536:10;2163:17;;2148:32;;;:11;:32;;;;1889:291;:342;;;;220:10;2214:17;;2199:32;;;:11;:32;;;;1889:342;1882:349;;1801:437;;;:::o;7233:159::-;7301:4;1348:10;1329:29;;:3;;;;;;;;;;;:9;;;1339:4;1329:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;;1325:40;;;1360:5;;;1325:40;7343:5;7317:7;:13;7325:4;7317:13;;;;;;;;;;;;;;;;;:18;;7336:3;7317:23;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;7317:31:47;;;;;;;;;;;;:::i;:::-;;7376:3;7358:27;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;7370:4:47;7358:27;;;;7381:3;7358:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7233:159:47;;;;:::o;4785:436::-;4852:19;4873:10;;:::i;:::-;4895;4908:7;:13;4916:4;4908:13;;;;;;;;;;;;;;;;;4895:26;;4949:1;4935:15;;4931:259;4967:12;4952:11;:27;;4931:259;;;5050:1;5033:12;5019:11;:26;5018:33;;:72;;;;;5089:1;5055:6;:11;;:24;5067:11;5055:24;;;;;;;;;;;:31;;;;;;;;;;;;;;;;:35;5018:72;5014:166;;;5117:6;:11;;:24;5129:11;5117:24;;;;;;;;;;;5110:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5159:7;;5014:166;4997:1;4981:17;;;;;;;4931:259;;;5213:1;5199:15;;4785:436;;;;;;;:::o;6459:162::-;6525:4;1348:10;1329:29;;:3;;;;;;;;;;;:9;;;1339:4;1329:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;;1325:40;;;1360:5;;;1325:40;6564:15;;;;;;;;;6574:1;6564:15;;;;;;;6577:1;6564:15;;;;;;6541:7;:13;6549:4;6541:13;;;;;;;;;;;;;;;;;:20;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6603:4;6589:25;;;;6609:1;6612;6589:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6459:162;;;;:::o;3165:106::-;3214:11;3243:7;:13;3251:4;3243:13;;;;;;;;;;;;;;;;;:21;;;3237:27;;3165:106;;;:::o;2397:100::-;2443:11;2472:7;:13;2480:4;2472:13;;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;2466:24;;2397:100;;;:::o;6838:116::-;6896:10;;:::i;:::-;6924:7;:13;6932:4;6924:13;;;;;;;;;;;;;;;;;:18;;6943:3;6924:23;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;6918:29:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6838:116;;;;:::o;5523:279::-;5597:4;1348:10;1329:29;;:3;;;;;;;;;;;:9;;;1339:4;1329:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;;1325:40;;;1360:5;;;1325:40;5699:1;5683:11;5678:1;5664:11;:15;5663:31;5662:38;;5658:49;;;5702:5;;;5658:49;5752:4;5718:7;:13;5726:4;5718:13;;;;;;;;;;;;;;;;;:18;;:31;5737:11;5718:31;;;;;;;;;;;:38;;;;;;;;;;;;:::i;:::-;;5783:11;5777:4;5766:29;;;;;;;;;;;;;5523:279;;;;:::o;3988:99::-;4034:10;;:::i;:::-;4062:7;:13;4070:4;4062:13;;;;;;;;;;;;;;;;;:18;;4056:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3988:99;;;:::o;4328:136::-;4383:4;1348:10;1329:29;;:3;;;;;;;;;;;:9;;;1339:4;1329:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;;1325:40;;;1360:5;;;1325:40;4420:4;4399:7;:13;4407:4;4399:13;;;;;;;;;;;;;;;;;:18;;:25;;;;;;;;;;;;:::i;:::-;;4446:4;4434:23;;;;4452:4;4434:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4328:136:47;;;:::o;3642:146::-;3701:4;1348:10;1329:29;;:3;;;;;;;;;;;:9;;;1339:4;1329:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;;1325:40;;;1360:5;;;1325:40;3741:4;3717:7;:13;3725:4;3717:13;;;;;;;;;;;;;;;;;:21;;:28;;;;;;;3770:4;3755:26;;;;3776:4;3755:26;;;;;;;;;;;;;;;;;;;;;;;;3642:146;;;:::o;6044:142::-;6092:9;6103;6132:7;:13;6140:4;6132:13;;;;;;;;;;;;;;;;;:20;;:22;;;6156:7;:13;6164:4;6156:13;;;;;;;;;;;;;;;;;:20;;:22;;;6124:55;;;;6044:142;;;:::o;2723:137::-;2779:4;1348:10;1329:29;;:3;;;;;;;;;;;:9;;;1339:4;1329:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;;1325:40;;;1360:5;;;1325:40;2816:4;2795:7;:13;2803:4;2795:13;;;;;;;;;;;;;;;;;:18;;;:25;;;;;;;;;;;;;;;;;;2842:4;2830:23;;;;2848:4;2830:23;;;;;;;;;;;;;;;;;;;;;;2723:137;;;:::o;154:7240::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o",
  "source": "pragma solidity ^0.4.0;\n\nimport './AbstractENS.sol';\n\n/**\n * A simple resolver anyone can use; only allows the owner of a node to set its\n * address.\n */\ncontract PublicResolver {\n    bytes4 constant INTERFACE_META_ID = 0x01ffc9a7;\n    bytes4 constant ADDR_INTERFACE_ID = 0x3b3b57de;\n    bytes4 constant CONTENT_INTERFACE_ID = 0xd8389dc5;\n    bytes4 constant NAME_INTERFACE_ID = 0x691f3431;\n    bytes4 constant ABI_INTERFACE_ID = 0x2203ab56;\n    bytes4 constant PUBKEY_INTERFACE_ID = 0xc8690233;\n    bytes4 constant TEXT_INTERFACE_ID = 0x59d1d43c;\n\n    event AddrChanged(bytes32 indexed node, address a);\n    event ContentChanged(bytes32 indexed node, bytes32 hash);\n    event NameChanged(bytes32 indexed node, string name);\n    event ABIChanged(bytes32 indexed node, uint256 indexed contentType);\n    event PubkeyChanged(bytes32 indexed node, bytes32 x, bytes32 y);\n    event TextChanged(bytes32 indexed node, string indexed indexedKey, string key);\n\n    struct PublicKey {\n        bytes32 x;\n        bytes32 y;\n    }\n\n    struct Record {\n        address addr;\n        bytes32 content;\n        string name;\n        PublicKey pubkey;\n        mapping(string=>string) text;\n        mapping(uint256=>bytes) abis;\n    }\n\n    AbstractENS ens;\n    mapping(bytes32=>Record) records;\n\n    modifier only_owner(bytes32 node) {\n        if (ens.owner(node) != msg.sender) throw;\n        _;\n    }\n\n    /**\n     * Constructor.\n     * @param ensAddr The ENS registrar contract.\n     */\n    function PublicResolver(AbstractENS ensAddr) {\n        ens = ensAddr;\n    }\n\n    /**\n     * Returns true if the resolver implements the interface specified by the provided hash.\n     * @param interfaceID The ID of the interface to check for.\n     * @return True if the contract implements the requested interface.\n     */\n    function supportsInterface(bytes4 interfaceID) constant returns (bool) {\n        return interfaceID == ADDR_INTERFACE_ID ||\n               interfaceID == CONTENT_INTERFACE_ID ||\n               interfaceID == NAME_INTERFACE_ID ||\n               interfaceID == ABI_INTERFACE_ID ||\n               interfaceID == PUBKEY_INTERFACE_ID ||\n               interfaceID == TEXT_INTERFACE_ID ||\n               interfaceID == INTERFACE_META_ID;\n    }\n\n    /**\n     * Returns the address associated with an ENS node.\n     * @param node The ENS node to query.\n     * @return The associated address.\n     */\n    function addr(bytes32 node) constant returns (address ret) {\n        ret = records[node].addr;\n    }\n\n    /**\n     * Sets the address associated with an ENS node.\n     * May only be called by the owner of that node in the ENS registry.\n     * @param node The node to update.\n     * @param addr The address to set.\n     */\n    function setAddr(bytes32 node, address addr) only_owner(node) {\n        records[node].addr = addr;\n        AddrChanged(node, addr);\n    }\n\n    /**\n     * Returns the content hash associated with an ENS node.\n     * Note that this resource type is not standardized, and will likely change\n     * in future to a resource type based on multihash.\n     * @param node The ENS node to query.\n     * @return The associated content hash.\n     */\n    function content(bytes32 node) constant returns (bytes32 ret) {\n        ret = records[node].content;\n    }\n\n    /**\n     * Sets the content hash associated with an ENS node.\n     * May only be called by the owner of that node in the ENS registry.\n     * Note that this resource type is not standardized, and will likely change\n     * in future to a resource type based on multihash.\n     * @param node The node to update.\n     * @param hash The content hash to set\n     */\n    function setContent(bytes32 node, bytes32 hash) only_owner(node) {\n        records[node].content = hash;\n        ContentChanged(node, hash);\n    }\n\n    /**\n     * Returns the name associated with an ENS node, for reverse records.\n     * Defined in EIP181.\n     * @param node The ENS node to query.\n     * @return The associated name.\n     */\n    function name(bytes32 node) constant returns (string ret) {\n        ret = records[node].name;\n    }\n\n    /**\n     * Sets the name associated with an ENS node, for reverse records.\n     * May only be called by the owner of that node in the ENS registry.\n     * @param node The node to update.\n     * @param name The name to set.\n     */\n    function setName(bytes32 node, string name) only_owner(node) {\n        records[node].name = name;\n        NameChanged(node, name);\n    }\n\n    /**\n     * Returns the ABI associated with an ENS node.\n     * Defined in EIP205.\n     * @param node The ENS node to query\n     * @param contentTypes A bitwise OR of the ABI formats accepted by the caller.\n     * @return contentType The content type of the return value\n     * @return data The ABI data\n     */\n    function ABI(bytes32 node, uint256 contentTypes) constant returns (uint256 contentType, bytes data) {\n        var record = records[node];\n        for(contentType = 1; contentType <= contentTypes; contentType <<= 1) {\n            if ((contentType & contentTypes) != 0 && record.abis[contentType].length > 0) {\n                data = record.abis[contentType];\n                return;\n            }\n        }\n        contentType = 0;\n    }\n\n    /**\n     * Sets the ABI associated with an ENS node.\n     * Nodes may have one ABI of each content type. To remove an ABI, set it to\n     * the empty string.\n     * @param node The node to update.\n     * @param contentType The content type of the ABI\n     * @param data The ABI data.\n     */\n    function setABI(bytes32 node, uint256 contentType, bytes data) only_owner(node) {\n        // Content types must be powers of 2\n        if (((contentType - 1) & contentType) != 0) throw;\n\n        records[node].abis[contentType] = data;\n        ABIChanged(node, contentType);\n    }\n\n    /**\n     * Returns the SECP256k1 public key associated with an ENS node.\n     * Defined in EIP 619.\n     * @param node The ENS node to query\n     * @return x, y the X and Y coordinates of the curve point for the public key.\n     */\n    function pubkey(bytes32 node) constant returns (bytes32 x, bytes32 y) {\n        return (records[node].pubkey.x, records[node].pubkey.y);\n    }\n\n    /**\n     * Sets the SECP256k1 public key associated with an ENS node.\n     * @param node The ENS node to query\n     * @param x the X coordinate of the curve point for the public key.\n     * @param y the Y coordinate of the curve point for the public key.\n     */\n    function setPubkey(bytes32 node, bytes32 x, bytes32 y) only_owner(node) {\n        records[node].pubkey = PublicKey(x, y);\n        PubkeyChanged(node, x, y);\n    }\n\n    /**\n     * Returns the text data associated with an ENS node and key.\n     * @param node The ENS node to query.\n     * @param key The text data key to query.\n     * @return The associated text data.\n     */\n    function text(bytes32 node, string key) constant returns (string ret) {\n        ret = records[node].text[key];\n    }\n\n    /**\n     * Sets the text data associated with an ENS node and key.\n     * May only be called by the owner of that node in the ENS registry.\n     * @param node The node to update.\n     * @param key The key to set.\n     * @param value The text data value to set.\n     */\n    function setText(bytes32 node, string key, string value) only_owner(node) {\n        records[node].text[key] = value;\n        TextChanged(node, key, key);\n    }\n}\n",
  "sourcePath": "@aragon/os/contracts/lib/ens/PublicResolver.sol",
  "ast": {
    "attributes": {
      "absolutePath": "@aragon/os/contracts/lib/ens/PublicResolver.sol",
      "exportedSymbols": {
        "PublicResolver": [
          10700
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "^",
            "0.4",
            ".0"
          ]
        },
        "id": 10240,
        "name": "PragmaDirective",
        "src": "0:23:47"
      },
      {
        "attributes": {
          "SourceUnit": 10055,
          "absolutePath": "@aragon/os/contracts/lib/ens/AbstractENS.sol",
          "file": "./AbstractENS.sol",
          "scope": 10701,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 10241,
        "name": "ImportDirective",
        "src": "25:27:47"
      },
      {
        "attributes": {
          "baseContracts": [
            null
          ],
          "contractDependencies": [
            null
          ],
          "contractKind": "contract",
          "documentation": "A simple resolver anyone can use; only allows the owner of a node to set its\naddress.",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            10700
          ],
          "name": "PublicResolver",
          "scope": 10701
        },
        "children": [
          {
            "attributes": {
              "constant": true,
              "name": "INTERFACE_META_ID",
              "scope": 10700,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "bytes4",
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "bytes4",
                  "type": "bytes4"
                },
                "id": 10242,
                "name": "ElementaryTypeName",
                "src": "184:6:47"
              },
              {
                "attributes": {
                  "argumentTypes": null,
                  "hexvalue": "30783031666663396137",
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "lValueRequested": false,
                  "subdenomination": null,
                  "token": "number",
                  "type": "int_const 33540519",
                  "value": "0x01ffc9a7"
                },
                "id": 10243,
                "name": "Literal",
                "src": "220:10:47"
              }
            ],
            "id": 10244,
            "name": "VariableDeclaration",
            "src": "184:46:47"
          },
          {
            "attributes": {
              "constant": true,
              "name": "ADDR_INTERFACE_ID",
              "scope": 10700,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "bytes4",
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "bytes4",
                  "type": "bytes4"
                },
                "id": 10245,
                "name": "ElementaryTypeName",
                "src": "236:6:47"
              },
              {
                "attributes": {
                  "argumentTypes": null,
                  "hexvalue": "30783362336235376465",
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "lValueRequested": false,
                  "subdenomination": null,
                  "token": "number",
                  "type": "int_const 993744862",
                  "value": "0x3b3b57de"
                },
                "id": 10246,
                "name": "Literal",
                "src": "272:10:47"
              }
            ],
            "id": 10247,
            "name": "VariableDeclaration",
            "src": "236:46:47"
          },
          {
            "attributes": {
              "constant": true,
              "name": "CONTENT_INTERFACE_ID",
              "scope": 10700,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "bytes4",
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "bytes4",
                  "type": "bytes4"
                },
                "id": 10248,
                "name": "ElementaryTypeName",
                "src": "288:6:47"
              },
              {
                "attributes": {
                  "argumentTypes": null,
                  "hexvalue": "30786438333839646335",
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "lValueRequested": false,
                  "subdenomination": null,
                  "token": "number",
                  "type": "int_const 3627589061",
                  "value": "0xd8389dc5"
                },
                "id": 10249,
                "name": "Literal",
                "src": "327:10:47"
              }
            ],
            "id": 10250,
            "name": "VariableDeclaration",
            "src": "288:49:47"
          },
          {
            "attributes": {
              "constant": true,
              "name": "NAME_INTERFACE_ID",
              "scope": 10700,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "bytes4",
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "bytes4",
                  "type": "bytes4"
                },
                "id": 10251,
                "name": "ElementaryTypeName",
                "src": "343:6:47"
              },
              {
                "attributes": {
                  "argumentTypes": null,
                  "hexvalue": "30783639316633343331",
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "lValueRequested": false,
                  "subdenomination": null,
                  "token": "number",
                  "type": "int_const 1763652657",
                  "value": "0x691f3431"
                },
                "id": 10252,
                "name": "Literal",
                "src": "379:10:47"
              }
            ],
            "id": 10253,
            "name": "VariableDeclaration",
            "src": "343:46:47"
          },
          {
            "attributes": {
              "constant": true,
              "name": "ABI_INTERFACE_ID",
              "scope": 10700,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "bytes4",
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "bytes4",
                  "type": "bytes4"
                },
                "id": 10254,
                "name": "ElementaryTypeName",
                "src": "395:6:47"
              },
              {
                "attributes": {
                  "argumentTypes": null,
                  "hexvalue": "30783232303361623536",
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "lValueRequested": false,
                  "subdenomination": null,
                  "token": "number",
                  "type": "int_const 570665814",
                  "value": "0x2203ab56"
                },
                "id": 10255,
                "name": "Literal",
                "src": "430:10:47"
              }
            ],
            "id": 10256,
            "name": "VariableDeclaration",
            "src": "395:45:47"
          },
          {
            "attributes": {
              "constant": true,
              "name": "PUBKEY_INTERFACE_ID",
              "scope": 10700,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "bytes4",
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "bytes4",
                  "type": "bytes4"
                },
                "id": 10257,
                "name": "ElementaryTypeName",
                "src": "446:6:47"
              },
              {
                "attributes": {
                  "argumentTypes": null,
                  "hexvalue": "30786338363930323333",
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "lValueRequested": false,
                  "subdenomination": null,
                  "token": "number",
                  "type": "int_const 3362325043",
                  "value": "0xc8690233"
                },
                "id": 10258,
                "name": "Literal",
                "src": "484:10:47"
              }
            ],
            "id": 10259,
            "name": "VariableDeclaration",
            "src": "446:48:47"
          },
          {
            "attributes": {
              "constant": true,
              "name": "TEXT_INTERFACE_ID",
              "scope": 10700,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "bytes4",
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "bytes4",
                  "type": "bytes4"
                },
                "id": 10260,
                "name": "ElementaryTypeName",
                "src": "500:6:47"
              },
              {
                "attributes": {
                  "argumentTypes": null,
                  "hexvalue": "30783539643164343363",
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "lValueRequested": false,
                  "subdenomination": null,
                  "token": "number",
                  "type": "int_const 1506923580",
                  "value": "0x59d1d43c"
                },
                "id": 10261,
                "name": "Literal",
                "src": "536:10:47"
              }
            ],
            "id": 10262,
            "name": "VariableDeclaration",
            "src": "500:46:47"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "AddrChanged"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "node",
                      "scope": 10268,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10263,
                        "name": "ElementaryTypeName",
                        "src": "571:7:47"
                      }
                    ],
                    "id": 10264,
                    "name": "VariableDeclaration",
                    "src": "571:20:47"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "a",
                      "scope": 10268,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 10265,
                        "name": "ElementaryTypeName",
                        "src": "593:7:47"
                      }
                    ],
                    "id": 10266,
                    "name": "VariableDeclaration",
                    "src": "593:9:47"
                  }
                ],
                "id": 10267,
                "name": "ParameterList",
                "src": "570:33:47"
              }
            ],
            "id": 10268,
            "name": "EventDefinition",
            "src": "553:51:47"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "ContentChanged"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "node",
                      "scope": 10274,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10269,
                        "name": "ElementaryTypeName",
                        "src": "630:7:47"
                      }
                    ],
                    "id": 10270,
                    "name": "VariableDeclaration",
                    "src": "630:20:47"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "hash",
                      "scope": 10274,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10271,
                        "name": "ElementaryTypeName",
                        "src": "652:7:47"
                      }
                    ],
                    "id": 10272,
                    "name": "VariableDeclaration",
                    "src": "652:12:47"
                  }
                ],
                "id": 10273,
                "name": "ParameterList",
                "src": "629:36:47"
              }
            ],
            "id": 10274,
            "name": "EventDefinition",
            "src": "609:57:47"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "NameChanged"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "node",
                      "scope": 10280,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10275,
                        "name": "ElementaryTypeName",
                        "src": "689:7:47"
                      }
                    ],
                    "id": 10276,
                    "name": "VariableDeclaration",
                    "src": "689:20:47"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "name",
                      "scope": 10280,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "string memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "string",
                          "type": "string storage pointer"
                        },
                        "id": 10277,
                        "name": "ElementaryTypeName",
                        "src": "711:6:47"
                      }
                    ],
                    "id": 10278,
                    "name": "VariableDeclaration",
                    "src": "711:11:47"
                  }
                ],
                "id": 10279,
                "name": "ParameterList",
                "src": "688:35:47"
              }
            ],
            "id": 10280,
            "name": "EventDefinition",
            "src": "671:53:47"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "ABIChanged"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "node",
                      "scope": 10286,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10281,
                        "name": "ElementaryTypeName",
                        "src": "746:7:47"
                      }
                    ],
                    "id": 10282,
                    "name": "VariableDeclaration",
                    "src": "746:20:47"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "contentType",
                      "scope": 10286,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 10283,
                        "name": "ElementaryTypeName",
                        "src": "768:7:47"
                      }
                    ],
                    "id": 10284,
                    "name": "VariableDeclaration",
                    "src": "768:27:47"
                  }
                ],
                "id": 10285,
                "name": "ParameterList",
                "src": "745:51:47"
              }
            ],
            "id": 10286,
            "name": "EventDefinition",
            "src": "729:68:47"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "PubkeyChanged"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "node",
                      "scope": 10294,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10287,
                        "name": "ElementaryTypeName",
                        "src": "822:7:47"
                      }
                    ],
                    "id": 10288,
                    "name": "VariableDeclaration",
                    "src": "822:20:47"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "x",
                      "scope": 10294,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10289,
                        "name": "ElementaryTypeName",
                        "src": "844:7:47"
                      }
                    ],
                    "id": 10290,
                    "name": "VariableDeclaration",
                    "src": "844:9:47"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "y",
                      "scope": 10294,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10291,
                        "name": "ElementaryTypeName",
                        "src": "855:7:47"
                      }
                    ],
                    "id": 10292,
                    "name": "VariableDeclaration",
                    "src": "855:9:47"
                  }
                ],
                "id": 10293,
                "name": "ParameterList",
                "src": "821:44:47"
              }
            ],
            "id": 10294,
            "name": "EventDefinition",
            "src": "802:64:47"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "TextChanged"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "node",
                      "scope": 10302,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10295,
                        "name": "ElementaryTypeName",
                        "src": "889:7:47"
                      }
                    ],
                    "id": 10296,
                    "name": "VariableDeclaration",
                    "src": "889:20:47"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "indexedKey",
                      "scope": 10302,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "string memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "string",
                          "type": "string storage pointer"
                        },
                        "id": 10297,
                        "name": "ElementaryTypeName",
                        "src": "911:6:47"
                      }
                    ],
                    "id": 10298,
                    "name": "VariableDeclaration",
                    "src": "911:25:47"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "key",
                      "scope": 10302,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "string memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "string",
                          "type": "string storage pointer"
                        },
                        "id": 10299,
                        "name": "ElementaryTypeName",
                        "src": "938:6:47"
                      }
                    ],
                    "id": 10300,
                    "name": "VariableDeclaration",
                    "src": "938:10:47"
                  }
                ],
                "id": 10301,
                "name": "ParameterList",
                "src": "888:61:47"
              }
            ],
            "id": 10302,
            "name": "EventDefinition",
            "src": "871:79:47"
          },
          {
            "attributes": {
              "canonicalName": "PublicResolver.PublicKey",
              "name": "PublicKey",
              "scope": 10700,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "name": "x",
                  "scope": 10307,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bytes32",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes32",
                      "type": "bytes32"
                    },
                    "id": 10303,
                    "name": "ElementaryTypeName",
                    "src": "983:7:47"
                  }
                ],
                "id": 10304,
                "name": "VariableDeclaration",
                "src": "983:9:47"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "y",
                  "scope": 10307,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bytes32",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes32",
                      "type": "bytes32"
                    },
                    "id": 10305,
                    "name": "ElementaryTypeName",
                    "src": "1002:7:47"
                  }
                ],
                "id": 10306,
                "name": "VariableDeclaration",
                "src": "1002:9:47"
              }
            ],
            "id": 10307,
            "name": "StructDefinition",
            "src": "956:62:47"
          },
          {
            "attributes": {
              "canonicalName": "PublicResolver.Record",
              "name": "Record",
              "scope": 10700,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "name": "addr",
                  "scope": 10324,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "address",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 10308,
                    "name": "ElementaryTypeName",
                    "src": "1048:7:47"
                  }
                ],
                "id": 10309,
                "name": "VariableDeclaration",
                "src": "1048:12:47"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "content",
                  "scope": 10324,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bytes32",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes32",
                      "type": "bytes32"
                    },
                    "id": 10310,
                    "name": "ElementaryTypeName",
                    "src": "1070:7:47"
                  }
                ],
                "id": 10311,
                "name": "VariableDeclaration",
                "src": "1070:15:47"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "name",
                  "scope": 10324,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "string storage pointer",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "string",
                      "type": "string storage pointer"
                    },
                    "id": 10312,
                    "name": "ElementaryTypeName",
                    "src": "1095:6:47"
                  }
                ],
                "id": 10313,
                "name": "VariableDeclaration",
                "src": "1095:11:47"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "pubkey",
                  "scope": 10324,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "struct PublicResolver.PublicKey storage pointer",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "PublicKey",
                      "referencedDeclaration": 10307,
                      "type": "struct PublicResolver.PublicKey storage pointer"
                    },
                    "id": 10314,
                    "name": "UserDefinedTypeName",
                    "src": "1116:9:47"
                  }
                ],
                "id": 10315,
                "name": "VariableDeclaration",
                "src": "1116:16:47"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "text",
                  "scope": 10324,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "mapping(string memory => string storage ref)",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "type": "mapping(string memory => string storage ref)"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "string",
                          "type": "string storage pointer"
                        },
                        "id": 10316,
                        "name": "ElementaryTypeName",
                        "src": "1150:6:47"
                      },
                      {
                        "attributes": {
                          "name": "string",
                          "type": "string storage pointer"
                        },
                        "id": 10317,
                        "name": "ElementaryTypeName",
                        "src": "1158:6:47"
                      }
                    ],
                    "id": 10318,
                    "name": "Mapping",
                    "src": "1142:23:47"
                  }
                ],
                "id": 10319,
                "name": "VariableDeclaration",
                "src": "1142:28:47"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "abis",
                  "scope": 10324,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "mapping(uint256 => bytes storage ref)",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "type": "mapping(uint256 => bytes storage ref)"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 10320,
                        "name": "ElementaryTypeName",
                        "src": "1188:7:47"
                      },
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes storage pointer"
                        },
                        "id": 10321,
                        "name": "ElementaryTypeName",
                        "src": "1197:5:47"
                      }
                    ],
                    "id": 10322,
                    "name": "Mapping",
                    "src": "1180:23:47"
                  }
                ],
                "id": 10323,
                "name": "VariableDeclaration",
                "src": "1180:28:47"
              }
            ],
            "id": 10324,
            "name": "StructDefinition",
            "src": "1024:191:47"
          },
          {
            "attributes": {
              "constant": false,
              "name": "ens",
              "scope": 10700,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "contract AbstractENS",
              "value": null,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "AbstractENS",
                  "referencedDeclaration": 10054,
                  "type": "contract AbstractENS"
                },
                "id": 10325,
                "name": "UserDefinedTypeName",
                "src": "1221:11:47"
              }
            ],
            "id": 10326,
            "name": "VariableDeclaration",
            "src": "1221:15:47"
          },
          {
            "attributes": {
              "constant": false,
              "name": "records",
              "scope": 10700,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "mapping(bytes32 => struct PublicResolver.Record storage ref)",
              "value": null,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "type": "mapping(bytes32 => struct PublicResolver.Record storage ref)"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes32",
                      "type": "bytes32"
                    },
                    "id": 10327,
                    "name": "ElementaryTypeName",
                    "src": "1250:7:47"
                  },
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "Record",
                      "referencedDeclaration": 10324,
                      "type": "struct PublicResolver.Record storage pointer"
                    },
                    "id": 10328,
                    "name": "UserDefinedTypeName",
                    "src": "1259:6:47"
                  }
                ],
                "id": 10329,
                "name": "Mapping",
                "src": "1242:24:47"
              }
            ],
            "id": 10330,
            "name": "VariableDeclaration",
            "src": "1242:32:47"
          },
          {
            "attributes": {
              "name": "only_owner",
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "node",
                      "scope": 10345,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10331,
                        "name": "ElementaryTypeName",
                        "src": "1301:7:47"
                      }
                    ],
                    "id": 10332,
                    "name": "VariableDeclaration",
                    "src": "1301:12:47"
                  }
                ],
                "id": 10333,
                "name": "ParameterList",
                "src": "1300:14:47"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "address",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "owner",
                                  "referencedDeclaration": 9983,
                                  "type": "function (bytes32) view external returns (address)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10326,
                                      "type": "contract AbstractENS",
                                      "value": "ens"
                                    },
                                    "id": 10334,
                                    "name": "Identifier",
                                    "src": "1329:3:47"
                                  }
                                ],
                                "id": 10335,
                                "name": "MemberAccess",
                                "src": "1329:9:47"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10332,
                                  "type": "bytes32",
                                  "value": "node"
                                },
                                "id": 10336,
                                "name": "Identifier",
                                "src": "1339:4:47"
                              }
                            ],
                            "id": 10337,
                            "name": "FunctionCall",
                            "src": "1329:15:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 12590,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 10338,
                                "name": "Identifier",
                                "src": "1348:3:47"
                              }
                            ],
                            "id": 10339,
                            "name": "MemberAccess",
                            "src": "1348:10:47"
                          }
                        ],
                        "id": 10340,
                        "name": "BinaryOperation",
                        "src": "1329:29:47"
                      },
                      {
                        "children": [],
                        "id": 10341,
                        "name": "Throw",
                        "src": "1360:5:47"
                      }
                    ],
                    "id": 10342,
                    "name": "IfStatement",
                    "src": "1325:40:47"
                  },
                  {
                    "id": 10343,
                    "name": "PlaceholderStatement",
                    "src": "1375:1:47"
                  }
                ],
                "id": 10344,
                "name": "Block",
                "src": "1315:68:47"
              }
            ],
            "id": 10345,
            "name": "ModifierDefinition",
            "src": "1281:102:47"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": true,
              "modifiers": [
                null
              ],
              "name": "PublicResolver",
              "payable": false,
              "scope": 10700,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "ensAddr",
                      "scope": 10355,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract AbstractENS",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "AbstractENS",
                          "referencedDeclaration": 10054,
                          "type": "contract AbstractENS"
                        },
                        "id": 10346,
                        "name": "UserDefinedTypeName",
                        "src": "1499:11:47"
                      }
                    ],
                    "id": 10347,
                    "name": "VariableDeclaration",
                    "src": "1499:19:47"
                  }
                ],
                "id": 10348,
                "name": "ParameterList",
                "src": "1498:21:47"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 10349,
                "name": "ParameterList",
                "src": "1520:0:47"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "contract AbstractENS"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10326,
                              "type": "contract AbstractENS",
                              "value": "ens"
                            },
                            "id": 10350,
                            "name": "Identifier",
                            "src": "1530:3:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10347,
                              "type": "contract AbstractENS",
                              "value": "ensAddr"
                            },
                            "id": 10351,
                            "name": "Identifier",
                            "src": "1536:7:47"
                          }
                        ],
                        "id": 10352,
                        "name": "Assignment",
                        "src": "1530:13:47"
                      }
                    ],
                    "id": 10353,
                    "name": "ExpressionStatement",
                    "src": "1530:13:47"
                  }
                ],
                "id": 10354,
                "name": "Block",
                "src": "1520:30:47"
              }
            ],
            "id": 10355,
            "name": "FunctionDefinition",
            "src": "1475:75:47"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "supportsInterface",
              "payable": false,
              "scope": 10700,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "interfaceID",
                      "scope": 10391,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes4",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes4",
                          "type": "bytes4"
                        },
                        "id": 10356,
                        "name": "ElementaryTypeName",
                        "src": "1828:6:47"
                      }
                    ],
                    "id": 10357,
                    "name": "VariableDeclaration",
                    "src": "1828:18:47"
                  }
                ],
                "id": 10358,
                "name": "ParameterList",
                "src": "1827:20:47"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 10391,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 10359,
                        "name": "ElementaryTypeName",
                        "src": "1866:4:47"
                      }
                    ],
                    "id": 10360,
                    "name": "VariableDeclaration",
                    "src": "1866:4:47"
                  }
                ],
                "id": 10361,
                "name": "ParameterList",
                "src": "1865:6:47"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 10361
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "||",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "||",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "||",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "||",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "||",
                                          "type": "bool"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "commonType": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                              },
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": "||",
                                              "type": "bool"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "commonType": {
                                                    "typeIdentifier": "t_bytes4",
                                                    "typeString": "bytes4"
                                                  },
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "operator": "==",
                                                  "type": "bool"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 10357,
                                                      "type": "bytes4",
                                                      "value": "interfaceID"
                                                    },
                                                    "id": 10362,
                                                    "name": "Identifier",
                                                    "src": "1889:11:47"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 10247,
                                                      "type": "bytes4",
                                                      "value": "ADDR_INTERFACE_ID"
                                                    },
                                                    "id": 10363,
                                                    "name": "Identifier",
                                                    "src": "1904:17:47"
                                                  }
                                                ],
                                                "id": 10364,
                                                "name": "BinaryOperation",
                                                "src": "1889:32:47"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "commonType": {
                                                    "typeIdentifier": "t_bytes4",
                                                    "typeString": "bytes4"
                                                  },
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "operator": "==",
                                                  "type": "bool"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 10357,
                                                      "type": "bytes4",
                                                      "value": "interfaceID"
                                                    },
                                                    "id": 10365,
                                                    "name": "Identifier",
                                                    "src": "1940:11:47"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 10250,
                                                      "type": "bytes4",
                                                      "value": "CONTENT_INTERFACE_ID"
                                                    },
                                                    "id": 10366,
                                                    "name": "Identifier",
                                                    "src": "1955:20:47"
                                                  }
                                                ],
                                                "id": 10367,
                                                "name": "BinaryOperation",
                                                "src": "1940:35:47"
                                              }
                                            ],
                                            "id": 10368,
                                            "name": "BinaryOperation",
                                            "src": "1889:86:47"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "commonType": {
                                                "typeIdentifier": "t_bytes4",
                                                "typeString": "bytes4"
                                              },
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": "==",
                                              "type": "bool"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10357,
                                                  "type": "bytes4",
                                                  "value": "interfaceID"
                                                },
                                                "id": 10369,
                                                "name": "Identifier",
                                                "src": "1994:11:47"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10253,
                                                  "type": "bytes4",
                                                  "value": "NAME_INTERFACE_ID"
                                                },
                                                "id": 10370,
                                                "name": "Identifier",
                                                "src": "2009:17:47"
                                              }
                                            ],
                                            "id": 10371,
                                            "name": "BinaryOperation",
                                            "src": "1994:32:47"
                                          }
                                        ],
                                        "id": 10372,
                                        "name": "BinaryOperation",
                                        "src": "1889:137:47"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_bytes4",
                                            "typeString": "bytes4"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "==",
                                          "type": "bool"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10357,
                                              "type": "bytes4",
                                              "value": "interfaceID"
                                            },
                                            "id": 10373,
                                            "name": "Identifier",
                                            "src": "2045:11:47"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10256,
                                              "type": "bytes4",
                                              "value": "ABI_INTERFACE_ID"
                                            },
                                            "id": 10374,
                                            "name": "Identifier",
                                            "src": "2060:16:47"
                                          }
                                        ],
                                        "id": 10375,
                                        "name": "BinaryOperation",
                                        "src": "2045:31:47"
                                      }
                                    ],
                                    "id": 10376,
                                    "name": "BinaryOperation",
                                    "src": "1889:187:47"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_bytes4",
                                        "typeString": "bytes4"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "==",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10357,
                                          "type": "bytes4",
                                          "value": "interfaceID"
                                        },
                                        "id": 10377,
                                        "name": "Identifier",
                                        "src": "2095:11:47"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10259,
                                          "type": "bytes4",
                                          "value": "PUBKEY_INTERFACE_ID"
                                        },
                                        "id": 10378,
                                        "name": "Identifier",
                                        "src": "2110:19:47"
                                      }
                                    ],
                                    "id": 10379,
                                    "name": "BinaryOperation",
                                    "src": "2095:34:47"
                                  }
                                ],
                                "id": 10380,
                                "name": "BinaryOperation",
                                "src": "1889:240:47"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes4",
                                    "typeString": "bytes4"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "==",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10357,
                                      "type": "bytes4",
                                      "value": "interfaceID"
                                    },
                                    "id": 10381,
                                    "name": "Identifier",
                                    "src": "2148:11:47"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10262,
                                      "type": "bytes4",
                                      "value": "TEXT_INTERFACE_ID"
                                    },
                                    "id": 10382,
                                    "name": "Identifier",
                                    "src": "2163:17:47"
                                  }
                                ],
                                "id": 10383,
                                "name": "BinaryOperation",
                                "src": "2148:32:47"
                              }
                            ],
                            "id": 10384,
                            "name": "BinaryOperation",
                            "src": "1889:291:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes4",
                                "typeString": "bytes4"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10357,
                                  "type": "bytes4",
                                  "value": "interfaceID"
                                },
                                "id": 10385,
                                "name": "Identifier",
                                "src": "2199:11:47"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10244,
                                  "type": "bytes4",
                                  "value": "INTERFACE_META_ID"
                                },
                                "id": 10386,
                                "name": "Identifier",
                                "src": "2214:17:47"
                              }
                            ],
                            "id": 10387,
                            "name": "BinaryOperation",
                            "src": "2199:32:47"
                          }
                        ],
                        "id": 10388,
                        "name": "BinaryOperation",
                        "src": "1889:342:47"
                      }
                    ],
                    "id": 10389,
                    "name": "Return",
                    "src": "1882:349:47"
                  }
                ],
                "id": 10390,
                "name": "Block",
                "src": "1872:366:47"
              }
            ],
            "id": 10391,
            "name": "FunctionDefinition",
            "src": "1801:437:47"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "addr",
              "payable": false,
              "scope": 10700,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "node",
                      "scope": 10406,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10392,
                        "name": "ElementaryTypeName",
                        "src": "2411:7:47"
                      }
                    ],
                    "id": 10393,
                    "name": "VariableDeclaration",
                    "src": "2411:12:47"
                  }
                ],
                "id": 10394,
                "name": "ParameterList",
                "src": "2410:14:47"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "ret",
                      "scope": 10406,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 10395,
                        "name": "ElementaryTypeName",
                        "src": "2443:7:47"
                      }
                    ],
                    "id": 10396,
                    "name": "VariableDeclaration",
                    "src": "2443:11:47"
                  }
                ],
                "id": 10397,
                "name": "ParameterList",
                "src": "2442:13:47"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "address"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10396,
                              "type": "address",
                              "value": "ret"
                            },
                            "id": 10398,
                            "name": "Identifier",
                            "src": "2466:3:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "addr",
                              "referencedDeclaration": 10309,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct PublicResolver.Record storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10330,
                                      "type": "mapping(bytes32 => struct PublicResolver.Record storage ref)",
                                      "value": "records"
                                    },
                                    "id": 10399,
                                    "name": "Identifier",
                                    "src": "2472:7:47"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10393,
                                      "type": "bytes32",
                                      "value": "node"
                                    },
                                    "id": 10400,
                                    "name": "Identifier",
                                    "src": "2480:4:47"
                                  }
                                ],
                                "id": 10401,
                                "name": "IndexAccess",
                                "src": "2472:13:47"
                              }
                            ],
                            "id": 10402,
                            "name": "MemberAccess",
                            "src": "2472:18:47"
                          }
                        ],
                        "id": 10403,
                        "name": "Assignment",
                        "src": "2466:24:47"
                      }
                    ],
                    "id": 10404,
                    "name": "ExpressionStatement",
                    "src": "2466:24:47"
                  }
                ],
                "id": 10405,
                "name": "Block",
                "src": "2456:41:47"
              }
            ],
            "id": 10406,
            "name": "FunctionDefinition",
            "src": "2397:100:47"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "setAddr",
              "payable": false,
              "scope": 10700,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "node",
                      "scope": 10429,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10407,
                        "name": "ElementaryTypeName",
                        "src": "2740:7:47"
                      }
                    ],
                    "id": 10408,
                    "name": "VariableDeclaration",
                    "src": "2740:12:47"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "addr",
                      "scope": 10429,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 10409,
                        "name": "ElementaryTypeName",
                        "src": "2754:7:47"
                      }
                    ],
                    "id": 10410,
                    "name": "VariableDeclaration",
                    "src": "2754:12:47"
                  }
                ],
                "id": 10411,
                "name": "ParameterList",
                "src": "2739:28:47"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 10415,
                "name": "ParameterList",
                "src": "2785:0:47"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 10345,
                      "type": "modifier (bytes32)",
                      "value": "only_owner"
                    },
                    "id": 10412,
                    "name": "Identifier",
                    "src": "2768:10:47"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 10408,
                      "type": "bytes32",
                      "value": "node"
                    },
                    "id": 10413,
                    "name": "Identifier",
                    "src": "2779:4:47"
                  }
                ],
                "id": 10414,
                "name": "ModifierInvocation",
                "src": "2768:16:47"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "address"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "addr",
                              "referencedDeclaration": 10309,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct PublicResolver.Record storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10330,
                                      "type": "mapping(bytes32 => struct PublicResolver.Record storage ref)",
                                      "value": "records"
                                    },
                                    "id": 10416,
                                    "name": "Identifier",
                                    "src": "2795:7:47"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10408,
                                      "type": "bytes32",
                                      "value": "node"
                                    },
                                    "id": 10417,
                                    "name": "Identifier",
                                    "src": "2803:4:47"
                                  }
                                ],
                                "id": 10418,
                                "name": "IndexAccess",
                                "src": "2795:13:47"
                              }
                            ],
                            "id": 10419,
                            "name": "MemberAccess",
                            "src": "2795:18:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10410,
                              "type": "address",
                              "value": "addr"
                            },
                            "id": 10420,
                            "name": "Identifier",
                            "src": "2816:4:47"
                          }
                        ],
                        "id": 10421,
                        "name": "Assignment",
                        "src": "2795:25:47"
                      }
                    ],
                    "id": 10422,
                    "name": "ExpressionStatement",
                    "src": "2795:25:47"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10268,
                              "type": "function (bytes32,address)",
                              "value": "AddrChanged"
                            },
                            "id": 10423,
                            "name": "Identifier",
                            "src": "2830:11:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10408,
                              "type": "bytes32",
                              "value": "node"
                            },
                            "id": 10424,
                            "name": "Identifier",
                            "src": "2842:4:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10410,
                              "type": "address",
                              "value": "addr"
                            },
                            "id": 10425,
                            "name": "Identifier",
                            "src": "2848:4:47"
                          }
                        ],
                        "id": 10426,
                        "name": "FunctionCall",
                        "src": "2830:23:47"
                      }
                    ],
                    "id": 10427,
                    "name": "ExpressionStatement",
                    "src": "2830:23:47"
                  }
                ],
                "id": 10428,
                "name": "Block",
                "src": "2785:75:47"
              }
            ],
            "id": 10429,
            "name": "FunctionDefinition",
            "src": "2723:137:47"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "content",
              "payable": false,
              "scope": 10700,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "node",
                      "scope": 10444,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10430,
                        "name": "ElementaryTypeName",
                        "src": "3182:7:47"
                      }
                    ],
                    "id": 10431,
                    "name": "VariableDeclaration",
                    "src": "3182:12:47"
                  }
                ],
                "id": 10432,
                "name": "ParameterList",
                "src": "3181:14:47"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "ret",
                      "scope": 10444,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10433,
                        "name": "ElementaryTypeName",
                        "src": "3214:7:47"
                      }
                    ],
                    "id": 10434,
                    "name": "VariableDeclaration",
                    "src": "3214:11:47"
                  }
                ],
                "id": 10435,
                "name": "ParameterList",
                "src": "3213:13:47"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "bytes32"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10434,
                              "type": "bytes32",
                              "value": "ret"
                            },
                            "id": 10436,
                            "name": "Identifier",
                            "src": "3237:3:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "content",
                              "referencedDeclaration": 10311,
                              "type": "bytes32"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct PublicResolver.Record storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10330,
                                      "type": "mapping(bytes32 => struct PublicResolver.Record storage ref)",
                                      "value": "records"
                                    },
                                    "id": 10437,
                                    "name": "Identifier",
                                    "src": "3243:7:47"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10431,
                                      "type": "bytes32",
                                      "value": "node"
                                    },
                                    "id": 10438,
                                    "name": "Identifier",
                                    "src": "3251:4:47"
                                  }
                                ],
                                "id": 10439,
                                "name": "IndexAccess",
                                "src": "3243:13:47"
                              }
                            ],
                            "id": 10440,
                            "name": "MemberAccess",
                            "src": "3243:21:47"
                          }
                        ],
                        "id": 10441,
                        "name": "Assignment",
                        "src": "3237:27:47"
                      }
                    ],
                    "id": 10442,
                    "name": "ExpressionStatement",
                    "src": "3237:27:47"
                  }
                ],
                "id": 10443,
                "name": "Block",
                "src": "3227:44:47"
              }
            ],
            "id": 10444,
            "name": "FunctionDefinition",
            "src": "3165:106:47"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "setContent",
              "payable": false,
              "scope": 10700,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "node",
                      "scope": 10467,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10445,
                        "name": "ElementaryTypeName",
                        "src": "3662:7:47"
                      }
                    ],
                    "id": 10446,
                    "name": "VariableDeclaration",
                    "src": "3662:12:47"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "hash",
                      "scope": 10467,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10447,
                        "name": "ElementaryTypeName",
                        "src": "3676:7:47"
                      }
                    ],
                    "id": 10448,
                    "name": "VariableDeclaration",
                    "src": "3676:12:47"
                  }
                ],
                "id": 10449,
                "name": "ParameterList",
                "src": "3661:28:47"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 10453,
                "name": "ParameterList",
                "src": "3707:0:47"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 10345,
                      "type": "modifier (bytes32)",
                      "value": "only_owner"
                    },
                    "id": 10450,
                    "name": "Identifier",
                    "src": "3690:10:47"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 10446,
                      "type": "bytes32",
                      "value": "node"
                    },
                    "id": 10451,
                    "name": "Identifier",
                    "src": "3701:4:47"
                  }
                ],
                "id": 10452,
                "name": "ModifierInvocation",
                "src": "3690:16:47"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "bytes32"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "content",
                              "referencedDeclaration": 10311,
                              "type": "bytes32"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct PublicResolver.Record storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10330,
                                      "type": "mapping(bytes32 => struct PublicResolver.Record storage ref)",
                                      "value": "records"
                                    },
                                    "id": 10454,
                                    "name": "Identifier",
                                    "src": "3717:7:47"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10446,
                                      "type": "bytes32",
                                      "value": "node"
                                    },
                                    "id": 10455,
                                    "name": "Identifier",
                                    "src": "3725:4:47"
                                  }
                                ],
                                "id": 10456,
                                "name": "IndexAccess",
                                "src": "3717:13:47"
                              }
                            ],
                            "id": 10457,
                            "name": "MemberAccess",
                            "src": "3717:21:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10448,
                              "type": "bytes32",
                              "value": "hash"
                            },
                            "id": 10458,
                            "name": "Identifier",
                            "src": "3741:4:47"
                          }
                        ],
                        "id": 10459,
                        "name": "Assignment",
                        "src": "3717:28:47"
                      }
                    ],
                    "id": 10460,
                    "name": "ExpressionStatement",
                    "src": "3717:28:47"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10274,
                              "type": "function (bytes32,bytes32)",
                              "value": "ContentChanged"
                            },
                            "id": 10461,
                            "name": "Identifier",
                            "src": "3755:14:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10446,
                              "type": "bytes32",
                              "value": "node"
                            },
                            "id": 10462,
                            "name": "Identifier",
                            "src": "3770:4:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10448,
                              "type": "bytes32",
                              "value": "hash"
                            },
                            "id": 10463,
                            "name": "Identifier",
                            "src": "3776:4:47"
                          }
                        ],
                        "id": 10464,
                        "name": "FunctionCall",
                        "src": "3755:26:47"
                      }
                    ],
                    "id": 10465,
                    "name": "ExpressionStatement",
                    "src": "3755:26:47"
                  }
                ],
                "id": 10466,
                "name": "Block",
                "src": "3707:81:47"
              }
            ],
            "id": 10467,
            "name": "FunctionDefinition",
            "src": "3642:146:47"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "name",
              "payable": false,
              "scope": 10700,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "node",
                      "scope": 10482,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10468,
                        "name": "ElementaryTypeName",
                        "src": "4002:7:47"
                      }
                    ],
                    "id": 10469,
                    "name": "VariableDeclaration",
                    "src": "4002:12:47"
                  }
                ],
                "id": 10470,
                "name": "ParameterList",
                "src": "4001:14:47"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "ret",
                      "scope": 10482,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "string memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "string",
                          "type": "string storage pointer"
                        },
                        "id": 10471,
                        "name": "ElementaryTypeName",
                        "src": "4034:6:47"
                      }
                    ],
                    "id": 10472,
                    "name": "VariableDeclaration",
                    "src": "4034:10:47"
                  }
                ],
                "id": 10473,
                "name": "ParameterList",
                "src": "4033:12:47"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "string memory"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10472,
                              "type": "string memory",
                              "value": "ret"
                            },
                            "id": 10474,
                            "name": "Identifier",
                            "src": "4056:3:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "name",
                              "referencedDeclaration": 10313,
                              "type": "string storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct PublicResolver.Record storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10330,
                                      "type": "mapping(bytes32 => struct PublicResolver.Record storage ref)",
                                      "value": "records"
                                    },
                                    "id": 10475,
                                    "name": "Identifier",
                                    "src": "4062:7:47"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10469,
                                      "type": "bytes32",
                                      "value": "node"
                                    },
                                    "id": 10476,
                                    "name": "Identifier",
                                    "src": "4070:4:47"
                                  }
                                ],
                                "id": 10477,
                                "name": "IndexAccess",
                                "src": "4062:13:47"
                              }
                            ],
                            "id": 10478,
                            "name": "MemberAccess",
                            "src": "4062:18:47"
                          }
                        ],
                        "id": 10479,
                        "name": "Assignment",
                        "src": "4056:24:47"
                      }
                    ],
                    "id": 10480,
                    "name": "ExpressionStatement",
                    "src": "4056:24:47"
                  }
                ],
                "id": 10481,
                "name": "Block",
                "src": "4046:41:47"
              }
            ],
            "id": 10482,
            "name": "FunctionDefinition",
            "src": "3988:99:47"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "setName",
              "payable": false,
              "scope": 10700,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "node",
                      "scope": 10505,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10483,
                        "name": "ElementaryTypeName",
                        "src": "4345:7:47"
                      }
                    ],
                    "id": 10484,
                    "name": "VariableDeclaration",
                    "src": "4345:12:47"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "name",
                      "scope": 10505,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "string memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "string",
                          "type": "string storage pointer"
                        },
                        "id": 10485,
                        "name": "ElementaryTypeName",
                        "src": "4359:6:47"
                      }
                    ],
                    "id": 10486,
                    "name": "VariableDeclaration",
                    "src": "4359:11:47"
                  }
                ],
                "id": 10487,
                "name": "ParameterList",
                "src": "4344:27:47"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 10491,
                "name": "ParameterList",
                "src": "4389:0:47"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 10345,
                      "type": "modifier (bytes32)",
                      "value": "only_owner"
                    },
                    "id": 10488,
                    "name": "Identifier",
                    "src": "4372:10:47"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 10484,
                      "type": "bytes32",
                      "value": "node"
                    },
                    "id": 10489,
                    "name": "Identifier",
                    "src": "4383:4:47"
                  }
                ],
                "id": 10490,
                "name": "ModifierInvocation",
                "src": "4372:16:47"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "string storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "name",
                              "referencedDeclaration": 10313,
                              "type": "string storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct PublicResolver.Record storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10330,
                                      "type": "mapping(bytes32 => struct PublicResolver.Record storage ref)",
                                      "value": "records"
                                    },
                                    "id": 10492,
                                    "name": "Identifier",
                                    "src": "4399:7:47"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10484,
                                      "type": "bytes32",
                                      "value": "node"
                                    },
                                    "id": 10493,
                                    "name": "Identifier",
                                    "src": "4407:4:47"
                                  }
                                ],
                                "id": 10494,
                                "name": "IndexAccess",
                                "src": "4399:13:47"
                              }
                            ],
                            "id": 10495,
                            "name": "MemberAccess",
                            "src": "4399:18:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10486,
                              "type": "string memory",
                              "value": "name"
                            },
                            "id": 10496,
                            "name": "Identifier",
                            "src": "4420:4:47"
                          }
                        ],
                        "id": 10497,
                        "name": "Assignment",
                        "src": "4399:25:47"
                      }
                    ],
                    "id": 10498,
                    "name": "ExpressionStatement",
                    "src": "4399:25:47"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10280,
                              "type": "function (bytes32,string memory)",
                              "value": "NameChanged"
                            },
                            "id": 10499,
                            "name": "Identifier",
                            "src": "4434:11:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10484,
                              "type": "bytes32",
                              "value": "node"
                            },
                            "id": 10500,
                            "name": "Identifier",
                            "src": "4446:4:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10486,
                              "type": "string memory",
                              "value": "name"
                            },
                            "id": 10501,
                            "name": "Identifier",
                            "src": "4452:4:47"
                          }
                        ],
                        "id": 10502,
                        "name": "FunctionCall",
                        "src": "4434:23:47"
                      }
                    ],
                    "id": 10503,
                    "name": "ExpressionStatement",
                    "src": "4434:23:47"
                  }
                ],
                "id": 10504,
                "name": "Block",
                "src": "4389:75:47"
              }
            ],
            "id": 10505,
            "name": "FunctionDefinition",
            "src": "4328:136:47"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "ABI",
              "payable": false,
              "scope": 10700,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "node",
                      "scope": 10563,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10506,
                        "name": "ElementaryTypeName",
                        "src": "4798:7:47"
                      }
                    ],
                    "id": 10507,
                    "name": "VariableDeclaration",
                    "src": "4798:12:47"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "contentTypes",
                      "scope": 10563,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 10508,
                        "name": "ElementaryTypeName",
                        "src": "4812:7:47"
                      }
                    ],
                    "id": 10509,
                    "name": "VariableDeclaration",
                    "src": "4812:20:47"
                  }
                ],
                "id": 10510,
                "name": "ParameterList",
                "src": "4797:36:47"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "contentType",
                      "scope": 10563,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 10511,
                        "name": "ElementaryTypeName",
                        "src": "4852:7:47"
                      }
                    ],
                    "id": 10512,
                    "name": "VariableDeclaration",
                    "src": "4852:19:47"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "data",
                      "scope": 10563,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes storage pointer"
                        },
                        "id": 10513,
                        "name": "ElementaryTypeName",
                        "src": "4873:5:47"
                      }
                    ],
                    "id": 10514,
                    "name": "VariableDeclaration",
                    "src": "4873:10:47"
                  }
                ],
                "id": 10515,
                "name": "ParameterList",
                "src": "4851:33:47"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        10516
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "record",
                          "scope": 10563,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "struct PublicResolver.Record storage pointer",
                          "typeName": null,
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [],
                        "id": 10516,
                        "name": "VariableDeclaration",
                        "src": "4895:10:47"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct PublicResolver.Record storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10330,
                              "type": "mapping(bytes32 => struct PublicResolver.Record storage ref)",
                              "value": "records"
                            },
                            "id": 10517,
                            "name": "Identifier",
                            "src": "4908:7:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10507,
                              "type": "bytes32",
                              "value": "node"
                            },
                            "id": 10518,
                            "name": "Identifier",
                            "src": "4916:4:47"
                          }
                        ],
                        "id": 10519,
                        "name": "IndexAccess",
                        "src": "4908:13:47"
                      }
                    ],
                    "id": 10520,
                    "name": "VariableDeclarationStatement",
                    "src": "4895:26:47"
                  },
                  {
                    "children": [
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10512,
                                  "type": "uint256",
                                  "value": "contentType"
                                },
                                "id": 10521,
                                "name": "Identifier",
                                "src": "4935:11:47"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "31",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 1",
                                  "value": "1"
                                },
                                "id": 10522,
                                "name": "Literal",
                                "src": "4949:1:47"
                              }
                            ],
                            "id": 10523,
                            "name": "Assignment",
                            "src": "4935:15:47"
                          }
                        ],
                        "id": 10524,
                        "name": "ExpressionStatement",
                        "src": "4935:15:47"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10512,
                              "type": "uint256",
                              "value": "contentType"
                            },
                            "id": 10525,
                            "name": "Identifier",
                            "src": "4952:11:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10509,
                              "type": "uint256",
                              "value": "contentTypes"
                            },
                            "id": 10526,
                            "name": "Identifier",
                            "src": "4967:12:47"
                          }
                        ],
                        "id": 10527,
                        "name": "BinaryOperation",
                        "src": "4952:27:47"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "<<=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10512,
                                  "type": "uint256",
                                  "value": "contentType"
                                },
                                "id": 10528,
                                "name": "Identifier",
                                "src": "4981:11:47"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "31",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 1",
                                  "value": "1"
                                },
                                "id": 10529,
                                "name": "Literal",
                                "src": "4997:1:47"
                              }
                            ],
                            "id": 10530,
                            "name": "Assignment",
                            "src": "4981:17:47"
                          }
                        ],
                        "id": 10531,
                        "name": "ExpressionStatement",
                        "src": "4981:17:47"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "falseBody": null
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "&&",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "!=",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isInlineArray": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "commonType": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              },
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": "&",
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10512,
                                                  "type": "uint256",
                                                  "value": "contentType"
                                                },
                                                "id": 10532,
                                                "name": "Identifier",
                                                "src": "5019:11:47"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10509,
                                                  "type": "uint256",
                                                  "value": "contentTypes"
                                                },
                                                "id": 10533,
                                                "name": "Identifier",
                                                "src": "5033:12:47"
                                              }
                                            ],
                                            "id": 10534,
                                            "name": "BinaryOperation",
                                            "src": "5019:26:47"
                                          }
                                        ],
                                        "id": 10535,
                                        "name": "TupleExpression",
                                        "src": "5018:28:47"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "30",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 0",
                                          "value": "0"
                                        },
                                        "id": 10536,
                                        "name": "Literal",
                                        "src": "5050:1:47"
                                      }
                                    ],
                                    "id": 10537,
                                    "name": "BinaryOperation",
                                    "src": "5018:33:47"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": ">",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "length",
                                          "referencedDeclaration": null,
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "bytes storage ref"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "member_name": "abis",
                                                  "referencedDeclaration": 10323,
                                                  "type": "mapping(uint256 => bytes storage ref)"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 10516,
                                                      "type": "struct PublicResolver.Record storage pointer",
                                                      "value": "record"
                                                    },
                                                    "id": 10538,
                                                    "name": "Identifier",
                                                    "src": "5055:6:47"
                                                  }
                                                ],
                                                "id": 10539,
                                                "name": "MemberAccess",
                                                "src": "5055:11:47"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10512,
                                                  "type": "uint256",
                                                  "value": "contentType"
                                                },
                                                "id": 10540,
                                                "name": "Identifier",
                                                "src": "5067:11:47"
                                              }
                                            ],
                                            "id": 10541,
                                            "name": "IndexAccess",
                                            "src": "5055:24:47"
                                          }
                                        ],
                                        "id": 10542,
                                        "name": "MemberAccess",
                                        "src": "5055:31:47"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "30",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 0",
                                          "value": "0"
                                        },
                                        "id": 10543,
                                        "name": "Literal",
                                        "src": "5089:1:47"
                                      }
                                    ],
                                    "id": 10544,
                                    "name": "BinaryOperation",
                                    "src": "5055:35:47"
                                  }
                                ],
                                "id": 10545,
                                "name": "BinaryOperation",
                                "src": "5018:72:47"
                              },
                              {
                                "children": [
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "=",
                                          "type": "bytes memory"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10514,
                                              "type": "bytes memory",
                                              "value": "data"
                                            },
                                            "id": 10546,
                                            "name": "Identifier",
                                            "src": "5110:4:47"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "bytes storage ref"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "member_name": "abis",
                                                  "referencedDeclaration": 10323,
                                                  "type": "mapping(uint256 => bytes storage ref)"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 10516,
                                                      "type": "struct PublicResolver.Record storage pointer",
                                                      "value": "record"
                                                    },
                                                    "id": 10547,
                                                    "name": "Identifier",
                                                    "src": "5117:6:47"
                                                  }
                                                ],
                                                "id": 10548,
                                                "name": "MemberAccess",
                                                "src": "5117:11:47"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10512,
                                                  "type": "uint256",
                                                  "value": "contentType"
                                                },
                                                "id": 10549,
                                                "name": "Identifier",
                                                "src": "5129:11:47"
                                              }
                                            ],
                                            "id": 10550,
                                            "name": "IndexAccess",
                                            "src": "5117:24:47"
                                          }
                                        ],
                                        "id": 10551,
                                        "name": "Assignment",
                                        "src": "5110:31:47"
                                      }
                                    ],
                                    "id": 10552,
                                    "name": "ExpressionStatement",
                                    "src": "5110:31:47"
                                  },
                                  {
                                    "attributes": {
                                      "expression": null,
                                      "functionReturnParameters": 10515
                                    },
                                    "id": 10553,
                                    "name": "Return",
                                    "src": "5159:7:47"
                                  }
                                ],
                                "id": 10554,
                                "name": "Block",
                                "src": "5092:88:47"
                              }
                            ],
                            "id": 10555,
                            "name": "IfStatement",
                            "src": "5014:166:47"
                          }
                        ],
                        "id": 10556,
                        "name": "Block",
                        "src": "5000:190:47"
                      }
                    ],
                    "id": 10557,
                    "name": "ForStatement",
                    "src": "4931:259:47"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10512,
                              "type": "uint256",
                              "value": "contentType"
                            },
                            "id": 10558,
                            "name": "Identifier",
                            "src": "5199:11:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 10559,
                            "name": "Literal",
                            "src": "5213:1:47"
                          }
                        ],
                        "id": 10560,
                        "name": "Assignment",
                        "src": "5199:15:47"
                      }
                    ],
                    "id": 10561,
                    "name": "ExpressionStatement",
                    "src": "5199:15:47"
                  }
                ],
                "id": 10562,
                "name": "Block",
                "src": "4885:336:47"
              }
            ],
            "id": 10563,
            "name": "FunctionDefinition",
            "src": "4785:436:47"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "setABI",
              "payable": false,
              "scope": 10700,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "node",
                      "scope": 10601,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10564,
                        "name": "ElementaryTypeName",
                        "src": "5539:7:47"
                      }
                    ],
                    "id": 10565,
                    "name": "VariableDeclaration",
                    "src": "5539:12:47"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "contentType",
                      "scope": 10601,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 10566,
                        "name": "ElementaryTypeName",
                        "src": "5553:7:47"
                      }
                    ],
                    "id": 10567,
                    "name": "VariableDeclaration",
                    "src": "5553:19:47"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "data",
                      "scope": 10601,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes storage pointer"
                        },
                        "id": 10568,
                        "name": "ElementaryTypeName",
                        "src": "5574:5:47"
                      }
                    ],
                    "id": 10569,
                    "name": "VariableDeclaration",
                    "src": "5574:10:47"
                  }
                ],
                "id": 10570,
                "name": "ParameterList",
                "src": "5538:47:47"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 10574,
                "name": "ParameterList",
                "src": "5603:0:47"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 10345,
                      "type": "modifier (bytes32)",
                      "value": "only_owner"
                    },
                    "id": 10571,
                    "name": "Identifier",
                    "src": "5586:10:47"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 10565,
                      "type": "bytes32",
                      "value": "node"
                    },
                    "id": 10572,
                    "name": "Identifier",
                    "src": "5597:4:47"
                  }
                ],
                "id": 10573,
                "name": "ModifierInvocation",
                "src": "5586:16:47"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "&",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "-",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10567,
                                              "type": "uint256",
                                              "value": "contentType"
                                            },
                                            "id": 10575,
                                            "name": "Identifier",
                                            "src": "5664:11:47"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "hexvalue": "31",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "subdenomination": null,
                                              "token": "number",
                                              "type": "int_const 1",
                                              "value": "1"
                                            },
                                            "id": 10576,
                                            "name": "Literal",
                                            "src": "5678:1:47"
                                          }
                                        ],
                                        "id": 10577,
                                        "name": "BinaryOperation",
                                        "src": "5664:15:47"
                                      }
                                    ],
                                    "id": 10578,
                                    "name": "TupleExpression",
                                    "src": "5663:17:47"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10567,
                                      "type": "uint256",
                                      "value": "contentType"
                                    },
                                    "id": 10579,
                                    "name": "Identifier",
                                    "src": "5683:11:47"
                                  }
                                ],
                                "id": 10580,
                                "name": "BinaryOperation",
                                "src": "5663:31:47"
                              }
                            ],
                            "id": 10581,
                            "name": "TupleExpression",
                            "src": "5662:33:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 10582,
                            "name": "Literal",
                            "src": "5699:1:47"
                          }
                        ],
                        "id": 10583,
                        "name": "BinaryOperation",
                        "src": "5662:38:47"
                      },
                      {
                        "children": [],
                        "id": 10584,
                        "name": "Throw",
                        "src": "5702:5:47"
                      }
                    ],
                    "id": 10585,
                    "name": "IfStatement",
                    "src": "5658:49:47"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "bytes storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "bytes storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "abis",
                                  "referencedDeclaration": 10323,
                                  "type": "mapping(uint256 => bytes storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct PublicResolver.Record storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10330,
                                          "type": "mapping(bytes32 => struct PublicResolver.Record storage ref)",
                                          "value": "records"
                                        },
                                        "id": 10586,
                                        "name": "Identifier",
                                        "src": "5718:7:47"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10565,
                                          "type": "bytes32",
                                          "value": "node"
                                        },
                                        "id": 10587,
                                        "name": "Identifier",
                                        "src": "5726:4:47"
                                      }
                                    ],
                                    "id": 10588,
                                    "name": "IndexAccess",
                                    "src": "5718:13:47"
                                  }
                                ],
                                "id": 10589,
                                "name": "MemberAccess",
                                "src": "5718:18:47"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10567,
                                  "type": "uint256",
                                  "value": "contentType"
                                },
                                "id": 10590,
                                "name": "Identifier",
                                "src": "5737:11:47"
                              }
                            ],
                            "id": 10591,
                            "name": "IndexAccess",
                            "src": "5718:31:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10569,
                              "type": "bytes memory",
                              "value": "data"
                            },
                            "id": 10592,
                            "name": "Identifier",
                            "src": "5752:4:47"
                          }
                        ],
                        "id": 10593,
                        "name": "Assignment",
                        "src": "5718:38:47"
                      }
                    ],
                    "id": 10594,
                    "name": "ExpressionStatement",
                    "src": "5718:38:47"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10286,
                              "type": "function (bytes32,uint256)",
                              "value": "ABIChanged"
                            },
                            "id": 10595,
                            "name": "Identifier",
                            "src": "5766:10:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10565,
                              "type": "bytes32",
                              "value": "node"
                            },
                            "id": 10596,
                            "name": "Identifier",
                            "src": "5777:4:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10567,
                              "type": "uint256",
                              "value": "contentType"
                            },
                            "id": 10597,
                            "name": "Identifier",
                            "src": "5783:11:47"
                          }
                        ],
                        "id": 10598,
                        "name": "FunctionCall",
                        "src": "5766:29:47"
                      }
                    ],
                    "id": 10599,
                    "name": "ExpressionStatement",
                    "src": "5766:29:47"
                  }
                ],
                "id": 10600,
                "name": "Block",
                "src": "5603:199:47"
              }
            ],
            "id": 10601,
            "name": "FunctionDefinition",
            "src": "5523:279:47"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "pubkey",
              "payable": false,
              "scope": 10700,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "node",
                      "scope": 10623,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10602,
                        "name": "ElementaryTypeName",
                        "src": "6060:7:47"
                      }
                    ],
                    "id": 10603,
                    "name": "VariableDeclaration",
                    "src": "6060:12:47"
                  }
                ],
                "id": 10604,
                "name": "ParameterList",
                "src": "6059:14:47"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "x",
                      "scope": 10623,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10605,
                        "name": "ElementaryTypeName",
                        "src": "6092:7:47"
                      }
                    ],
                    "id": 10606,
                    "name": "VariableDeclaration",
                    "src": "6092:9:47"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "y",
                      "scope": 10623,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10607,
                        "name": "ElementaryTypeName",
                        "src": "6103:7:47"
                      }
                    ],
                    "id": 10608,
                    "name": "VariableDeclaration",
                    "src": "6103:9:47"
                  }
                ],
                "id": 10609,
                "name": "ParameterList",
                "src": "6091:22:47"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 10609
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "tuple(bytes32,bytes32)"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "x",
                              "referencedDeclaration": 10304,
                              "type": "bytes32"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "pubkey",
                                  "referencedDeclaration": 10315,
                                  "type": "struct PublicResolver.PublicKey storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct PublicResolver.Record storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10330,
                                          "type": "mapping(bytes32 => struct PublicResolver.Record storage ref)",
                                          "value": "records"
                                        },
                                        "id": 10610,
                                        "name": "Identifier",
                                        "src": "6132:7:47"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10603,
                                          "type": "bytes32",
                                          "value": "node"
                                        },
                                        "id": 10611,
                                        "name": "Identifier",
                                        "src": "6140:4:47"
                                      }
                                    ],
                                    "id": 10612,
                                    "name": "IndexAccess",
                                    "src": "6132:13:47"
                                  }
                                ],
                                "id": 10613,
                                "name": "MemberAccess",
                                "src": "6132:20:47"
                              }
                            ],
                            "id": 10614,
                            "name": "MemberAccess",
                            "src": "6132:22:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "y",
                              "referencedDeclaration": 10306,
                              "type": "bytes32"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "pubkey",
                                  "referencedDeclaration": 10315,
                                  "type": "struct PublicResolver.PublicKey storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct PublicResolver.Record storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10330,
                                          "type": "mapping(bytes32 => struct PublicResolver.Record storage ref)",
                                          "value": "records"
                                        },
                                        "id": 10615,
                                        "name": "Identifier",
                                        "src": "6156:7:47"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10603,
                                          "type": "bytes32",
                                          "value": "node"
                                        },
                                        "id": 10616,
                                        "name": "Identifier",
                                        "src": "6164:4:47"
                                      }
                                    ],
                                    "id": 10617,
                                    "name": "IndexAccess",
                                    "src": "6156:13:47"
                                  }
                                ],
                                "id": 10618,
                                "name": "MemberAccess",
                                "src": "6156:20:47"
                              }
                            ],
                            "id": 10619,
                            "name": "MemberAccess",
                            "src": "6156:22:47"
                          }
                        ],
                        "id": 10620,
                        "name": "TupleExpression",
                        "src": "6131:48:47"
                      }
                    ],
                    "id": 10621,
                    "name": "Return",
                    "src": "6124:55:47"
                  }
                ],
                "id": 10622,
                "name": "Block",
                "src": "6114:72:47"
              }
            ],
            "id": 10623,
            "name": "FunctionDefinition",
            "src": "6044:142:47"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "setPubkey",
              "payable": false,
              "scope": 10700,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "node",
                      "scope": 10652,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10624,
                        "name": "ElementaryTypeName",
                        "src": "6478:7:47"
                      }
                    ],
                    "id": 10625,
                    "name": "VariableDeclaration",
                    "src": "6478:12:47"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "x",
                      "scope": 10652,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10626,
                        "name": "ElementaryTypeName",
                        "src": "6492:7:47"
                      }
                    ],
                    "id": 10627,
                    "name": "VariableDeclaration",
                    "src": "6492:9:47"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "y",
                      "scope": 10652,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10628,
                        "name": "ElementaryTypeName",
                        "src": "6503:7:47"
                      }
                    ],
                    "id": 10629,
                    "name": "VariableDeclaration",
                    "src": "6503:9:47"
                  }
                ],
                "id": 10630,
                "name": "ParameterList",
                "src": "6477:36:47"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 10634,
                "name": "ParameterList",
                "src": "6531:0:47"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 10345,
                      "type": "modifier (bytes32)",
                      "value": "only_owner"
                    },
                    "id": 10631,
                    "name": "Identifier",
                    "src": "6514:10:47"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 10625,
                      "type": "bytes32",
                      "value": "node"
                    },
                    "id": 10632,
                    "name": "Identifier",
                    "src": "6525:4:47"
                  }
                ],
                "id": 10633,
                "name": "ModifierInvocation",
                "src": "6514:16:47"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "struct PublicResolver.PublicKey storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "pubkey",
                              "referencedDeclaration": 10315,
                              "type": "struct PublicResolver.PublicKey storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct PublicResolver.Record storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10330,
                                      "type": "mapping(bytes32 => struct PublicResolver.Record storage ref)",
                                      "value": "records"
                                    },
                                    "id": 10635,
                                    "name": "Identifier",
                                    "src": "6541:7:47"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10625,
                                      "type": "bytes32",
                                      "value": "node"
                                    },
                                    "id": 10636,
                                    "name": "Identifier",
                                    "src": "6549:4:47"
                                  }
                                ],
                                "id": 10637,
                                "name": "IndexAccess",
                                "src": "6541:13:47"
                              }
                            ],
                            "id": 10638,
                            "name": "MemberAccess",
                            "src": "6541:20:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": true,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "struct PublicResolver.PublicKey memory",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10307,
                                  "type": "type(struct PublicResolver.PublicKey storage pointer)",
                                  "value": "PublicKey"
                                },
                                "id": 10639,
                                "name": "Identifier",
                                "src": "6564:9:47"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10627,
                                  "type": "bytes32",
                                  "value": "x"
                                },
                                "id": 10640,
                                "name": "Identifier",
                                "src": "6574:1:47"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10629,
                                  "type": "bytes32",
                                  "value": "y"
                                },
                                "id": 10641,
                                "name": "Identifier",
                                "src": "6577:1:47"
                              }
                            ],
                            "id": 10642,
                            "name": "FunctionCall",
                            "src": "6564:15:47"
                          }
                        ],
                        "id": 10643,
                        "name": "Assignment",
                        "src": "6541:38:47"
                      }
                    ],
                    "id": 10644,
                    "name": "ExpressionStatement",
                    "src": "6541:38:47"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10294,
                              "type": "function (bytes32,bytes32,bytes32)",
                              "value": "PubkeyChanged"
                            },
                            "id": 10645,
                            "name": "Identifier",
                            "src": "6589:13:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10625,
                              "type": "bytes32",
                              "value": "node"
                            },
                            "id": 10646,
                            "name": "Identifier",
                            "src": "6603:4:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10627,
                              "type": "bytes32",
                              "value": "x"
                            },
                            "id": 10647,
                            "name": "Identifier",
                            "src": "6609:1:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10629,
                              "type": "bytes32",
                              "value": "y"
                            },
                            "id": 10648,
                            "name": "Identifier",
                            "src": "6612:1:47"
                          }
                        ],
                        "id": 10649,
                        "name": "FunctionCall",
                        "src": "6589:25:47"
                      }
                    ],
                    "id": 10650,
                    "name": "ExpressionStatement",
                    "src": "6589:25:47"
                  }
                ],
                "id": 10651,
                "name": "Block",
                "src": "6531:90:47"
              }
            ],
            "id": 10652,
            "name": "FunctionDefinition",
            "src": "6459:162:47"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "text",
              "payable": false,
              "scope": 10700,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "node",
                      "scope": 10671,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10653,
                        "name": "ElementaryTypeName",
                        "src": "6852:7:47"
                      }
                    ],
                    "id": 10654,
                    "name": "VariableDeclaration",
                    "src": "6852:12:47"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "key",
                      "scope": 10671,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "string memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "string",
                          "type": "string storage pointer"
                        },
                        "id": 10655,
                        "name": "ElementaryTypeName",
                        "src": "6866:6:47"
                      }
                    ],
                    "id": 10656,
                    "name": "VariableDeclaration",
                    "src": "6866:10:47"
                  }
                ],
                "id": 10657,
                "name": "ParameterList",
                "src": "6851:26:47"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "ret",
                      "scope": 10671,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "string memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "string",
                          "type": "string storage pointer"
                        },
                        "id": 10658,
                        "name": "ElementaryTypeName",
                        "src": "6896:6:47"
                      }
                    ],
                    "id": 10659,
                    "name": "VariableDeclaration",
                    "src": "6896:10:47"
                  }
                ],
                "id": 10660,
                "name": "ParameterList",
                "src": "6895:12:47"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "string memory"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10659,
                              "type": "string memory",
                              "value": "ret"
                            },
                            "id": 10661,
                            "name": "Identifier",
                            "src": "6918:3:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "string storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "text",
                                  "referencedDeclaration": 10319,
                                  "type": "mapping(string memory => string storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct PublicResolver.Record storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10330,
                                          "type": "mapping(bytes32 => struct PublicResolver.Record storage ref)",
                                          "value": "records"
                                        },
                                        "id": 10662,
                                        "name": "Identifier",
                                        "src": "6924:7:47"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10654,
                                          "type": "bytes32",
                                          "value": "node"
                                        },
                                        "id": 10663,
                                        "name": "Identifier",
                                        "src": "6932:4:47"
                                      }
                                    ],
                                    "id": 10664,
                                    "name": "IndexAccess",
                                    "src": "6924:13:47"
                                  }
                                ],
                                "id": 10665,
                                "name": "MemberAccess",
                                "src": "6924:18:47"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10656,
                                  "type": "string memory",
                                  "value": "key"
                                },
                                "id": 10666,
                                "name": "Identifier",
                                "src": "6943:3:47"
                              }
                            ],
                            "id": 10667,
                            "name": "IndexAccess",
                            "src": "6924:23:47"
                          }
                        ],
                        "id": 10668,
                        "name": "Assignment",
                        "src": "6918:29:47"
                      }
                    ],
                    "id": 10669,
                    "name": "ExpressionStatement",
                    "src": "6918:29:47"
                  }
                ],
                "id": 10670,
                "name": "Block",
                "src": "6908:46:47"
              }
            ],
            "id": 10671,
            "name": "FunctionDefinition",
            "src": "6838:116:47"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "setText",
              "payable": false,
              "scope": 10700,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "node",
                      "scope": 10699,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 10672,
                        "name": "ElementaryTypeName",
                        "src": "7250:7:47"
                      }
                    ],
                    "id": 10673,
                    "name": "VariableDeclaration",
                    "src": "7250:12:47"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "key",
                      "scope": 10699,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "string memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "string",
                          "type": "string storage pointer"
                        },
                        "id": 10674,
                        "name": "ElementaryTypeName",
                        "src": "7264:6:47"
                      }
                    ],
                    "id": 10675,
                    "name": "VariableDeclaration",
                    "src": "7264:10:47"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "value",
                      "scope": 10699,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "string memory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "string",
                          "type": "string storage pointer"
                        },
                        "id": 10676,
                        "name": "ElementaryTypeName",
                        "src": "7276:6:47"
                      }
                    ],
                    "id": 10677,
                    "name": "VariableDeclaration",
                    "src": "7276:12:47"
                  }
                ],
                "id": 10678,
                "name": "ParameterList",
                "src": "7249:40:47"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 10682,
                "name": "ParameterList",
                "src": "7307:0:47"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 10345,
                      "type": "modifier (bytes32)",
                      "value": "only_owner"
                    },
                    "id": 10679,
                    "name": "Identifier",
                    "src": "7290:10:47"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 10673,
                      "type": "bytes32",
                      "value": "node"
                    },
                    "id": 10680,
                    "name": "Identifier",
                    "src": "7301:4:47"
                  }
                ],
                "id": 10681,
                "name": "ModifierInvocation",
                "src": "7290:16:47"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "string storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "string storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "text",
                                  "referencedDeclaration": 10319,
                                  "type": "mapping(string memory => string storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct PublicResolver.Record storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10330,
                                          "type": "mapping(bytes32 => struct PublicResolver.Record storage ref)",
                                          "value": "records"
                                        },
                                        "id": 10683,
                                        "name": "Identifier",
                                        "src": "7317:7:47"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10673,
                                          "type": "bytes32",
                                          "value": "node"
                                        },
                                        "id": 10684,
                                        "name": "Identifier",
                                        "src": "7325:4:47"
                                      }
                                    ],
                                    "id": 10685,
                                    "name": "IndexAccess",
                                    "src": "7317:13:47"
                                  }
                                ],
                                "id": 10686,
                                "name": "MemberAccess",
                                "src": "7317:18:47"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10675,
                                  "type": "string memory",
                                  "value": "key"
                                },
                                "id": 10687,
                                "name": "Identifier",
                                "src": "7336:3:47"
                              }
                            ],
                            "id": 10688,
                            "name": "IndexAccess",
                            "src": "7317:23:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10677,
                              "type": "string memory",
                              "value": "value"
                            },
                            "id": 10689,
                            "name": "Identifier",
                            "src": "7343:5:47"
                          }
                        ],
                        "id": 10690,
                        "name": "Assignment",
                        "src": "7317:31:47"
                      }
                    ],
                    "id": 10691,
                    "name": "ExpressionStatement",
                    "src": "7317:31:47"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10302,
                              "type": "function (bytes32,string memory,string memory)",
                              "value": "TextChanged"
                            },
                            "id": 10692,
                            "name": "Identifier",
                            "src": "7358:11:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10673,
                              "type": "bytes32",
                              "value": "node"
                            },
                            "id": 10693,
                            "name": "Identifier",
                            "src": "7370:4:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10675,
                              "type": "string memory",
                              "value": "key"
                            },
                            "id": 10694,
                            "name": "Identifier",
                            "src": "7376:3:47"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10675,
                              "type": "string memory",
                              "value": "key"
                            },
                            "id": 10695,
                            "name": "Identifier",
                            "src": "7381:3:47"
                          }
                        ],
                        "id": 10696,
                        "name": "FunctionCall",
                        "src": "7358:27:47"
                      }
                    ],
                    "id": 10697,
                    "name": "ExpressionStatement",
                    "src": "7358:27:47"
                  }
                ],
                "id": 10698,
                "name": "Block",
                "src": "7307:85:47"
              }
            ],
            "id": 10699,
            "name": "FunctionDefinition",
            "src": "7233:159:47"
          }
        ],
        "id": 10700,
        "name": "ContractDefinition",
        "src": "154:7240:47"
      }
    ],
    "id": 10701,
    "name": "SourceUnit",
    "src": "0:7395:47"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.18+commit.9cf6e910.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "1.0.1",
  "updatedAt": "2018-03-14T08:41:25.098Z"
}