{
  "contractName": "HashRegistrar",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract ENS",
          "name": "_ens",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_rootNode",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "_startDate",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "hash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "registrationDate",
          "type": "uint256"
        }
      ],
      "name": "AuctionStarted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "hash",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "status",
          "type": "uint8"
        }
      ],
      "name": "BidRevealed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "hash",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "string",
          "name": "name",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "registrationDate",
          "type": "uint256"
        }
      ],
      "name": "HashInvalidated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "hash",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "registrationDate",
          "type": "uint256"
        }
      ],
      "name": "HashRegistered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "hash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "HashReleased",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "hash",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "bidder",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "deposit",
          "type": "uint256"
        }
      ],
      "name": "NewBid",
      "type": "event"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "ens",
      "outputs": [
        {
          "internalType": "contract ENS",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "launchLength",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "registryStarted",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "rootNode",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "sealedBids",
      "outputs": [
        {
          "internalType": "contract Deed",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "startAuction",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32[]",
          "name": "_hashes",
          "type": "bytes32[]"
        }
      ],
      "name": "startAuctions",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "sealedBid",
          "type": "bytes32"
        }
      ],
      "name": "newBid",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32[]",
          "name": "hashes",
          "type": "bytes32[]"
        },
        {
          "internalType": "bytes32",
          "name": "sealedBid",
          "type": "bytes32"
        }
      ],
      "name": "startAuctionsAndBid",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_hash",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "_salt",
          "type": "bytes32"
        }
      ],
      "name": "unsealBid",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "bidder",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "seal",
          "type": "bytes32"
        }
      ],
      "name": "cancelBid",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "finalizeAuction",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_hash",
          "type": "bytes32"
        },
        {
          "internalType": "address payable",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transfer",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "releaseDeed",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "string",
          "name": "unhashedName",
          "type": "string"
        }
      ],
      "name": "invalidateName",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32[]",
          "name": "labels",
          "type": "bytes32[]"
        }
      ],
      "name": "eraseNode",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "transferRegistrars",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "hash",
          "type": "bytes32"
        },
        {
          "internalType": "contract Deed",
          "name": "deed",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "registrationDate",
          "type": "uint256"
        }
      ],
      "name": "acceptRegistrarTransfer",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "entries",
      "outputs": [
        {
          "internalType": "enum Registrar.Mode",
          "name": "",
          "type": "uint8"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "state",
      "outputs": [
        {
          "internalType": "enum Registrar.Mode",
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_hash",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "_timestamp",
          "type": "uint256"
        }
      ],
      "name": "isAllowed",
      "outputs": [
        {
          "internalType": "bool",
          "name": "allowed",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "getAllowedTime",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "hash",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        }
      ],
      "name": "shaBid",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ENS\",\"name\":\"_ens\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_rootNode\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_startDate\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"registrationDate\",\"type\":\"uint256\"}],\"name\":\"AuctionStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"BidRevealed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"registrationDate\",\"type\":\"uint256\"}],\"name\":\"HashInvalidated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"registrationDate\",\"type\":\"uint256\"}],\"name\":\"HashRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"HashReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"bidder\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"}],\"name\":\"NewBid\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"contract Deed\",\"name\":\"deed\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"registrationDate\",\"type\":\"uint256\"}],\"name\":\"acceptRegistrarTransfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"bidder\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"seal\",\"type\":\"bytes32\"}],\"name\":\"cancelBid\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ens\",\"outputs\":[{\"internalType\":\"contract ENS\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"entries\",\"outputs\":[{\"internalType\":\"enum Registrar.Mode\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"labels\",\"type\":\"bytes32[]\"}],\"name\":\"eraseNode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"finalizeAuction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"getAllowedTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"string\",\"name\":\"unhashedName\",\"type\":\"string\"}],\"name\":\"invalidateName\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_timestamp\",\"type\":\"uint256\"}],\"name\":\"isAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"launchLength\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"sealedBid\",\"type\":\"bytes32\"}],\"name\":\"newBid\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"registryStarted\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"releaseDeed\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"rootNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"sealedBids\",\"outputs\":[{\"internalType\":\"contract Deed\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"shaBid\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"startAuction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"_hashes\",\"type\":\"bytes32[]\"}],\"name\":\"startAuctions\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"hashes\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"sealedBid\",\"type\":\"bytes32\"}],\"name\":\"startAuctionsAndBid\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum Registrar.Mode\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"address payable\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"transferRegistrars\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"}],\"name\":\"unsealBid\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"The registrar handles the auction process for each subnode of the node it owns.\",\"methods\":{\"acceptRegistrarTransfer(bytes32,address,uint256)\":{\"details\":\"Accepts a transfer from a previous registrar; stubbed out here since there     is no previous registrar implementing this interface.\",\"params\":{\"deed\":\"The Deed object for the name being transferred in.\",\"hash\":\"The sha3 hash of the label to transfer.\",\"registrationDate\":\"The date at which the name was originally registered.\"}},\"cancelBid(address,bytes32)\":{\"details\":\"Cancel a bid\",\"params\":{\"seal\":\"The value returned by the shaBid function\"}},\"constructor\":{\"details\":\"Constructs a new Registrar, with the provided address as the owner of the root node.\",\"params\":{\"_ens\":\"The address of the ENS\",\"_rootNode\":\"The hash of the rootnode.\"}},\"eraseNode(bytes32[])\":{\"details\":\"Allows anyone to delete the owner and resolver records for a (subdomain of) a     name that is not currently owned in the registrar. If passing, eg, 'foo.bar.eth',     the owner and resolver fields on 'foo.bar.eth' and 'bar.eth' will all be cleared.\",\"params\":{\"labels\":\"A series of label hashes identifying the name to zero out, rooted at the       registrar's root. Must contain at least one element. For instance, to zero        'foo.bar.eth' on a registrar that owns '.eth', pass an array containing       [keccak256('foo'), keccak256('bar')].\"}},\"finalizeAuction(bytes32)\":{\"details\":\"Finalize an auction after the registration date has passed\",\"params\":{\"_hash\":\"The hash of the name the auction is for\"}},\"getAllowedTime(bytes32)\":{\"details\":\"Returns available date for hash     * The available time from the `registryStarted` for a hash is proportional to its numeric value.\",\"params\":{\"_hash\":\"The hash to start an auction on\"}},\"invalidateName(string)\":{\"details\":\"Submit a name 6 characters long or less. If it has been registered,     the submitter will earn 50% of the deed value.       * We are purposefully handicapping the simplified registrar as a way  to force it into being restructured in a few years.\",\"params\":{\"unhashedName\":\"An invalid name to search for in the registry.\"}},\"isAllowed(bytes32,uint256)\":{\"details\":\"Determines if a name is available for registration yet     * Each name will be assigned a random date in which its auction can be started, from 0 to 8 weeks\",\"params\":{\"_hash\":\"The hash to start an auction on\",\"_timestamp\":\"The timestamp to query about\"}},\"newBid(bytes32)\":{\"details\":\"Submit a new sealed bid on a desired hash in a blind auction     * Bids are sent by sending a message to the main contract with a hash and an amount. The hash contains information about the bid, including the bidded hash, the bid amount, and a random salt. Bids are not tied to any one auction until they are revealed. The value of the bid itself can be masqueraded by sending more than the value of your actual bid. This is followed by a 48h reveal period. Bids revealed after this period will be burned and the ether unrecoverable. Since this is an auction, it is expected that most public hashes, like known domains and common dictionary words, will have multiple bidders pushing the price up.\",\"params\":{\"sealedBid\":\"A sealedBid, created by the shaBid function\"}},\"releaseDeed(bytes32)\":{\"details\":\"After some time, or if we're no longer the registrar, the owner can release     the name and get their ether back.\",\"params\":{\"_hash\":\"The node to release\"}},\"shaBid(bytes32,address,uint256,bytes32)\":{\"details\":\"Hash the values required for a secret bid\",\"params\":{\"hash\":\"The node corresponding to the desired namehash\",\"salt\":\"A random value to ensure secrecy of the bid\",\"value\":\"The bid amount\"},\"return\":\"The hash of the bid values\"},\"startAuction(bytes32)\":{\"details\":\"Start an auction for an available hash\",\"params\":{\"_hash\":\"The hash to start an auction on\"}},\"startAuctions(bytes32[])\":{\"details\":\"Start multiple auctions for better anonymity     * Anyone can start an auction by sending an array of hashes that they want to bid for. Arrays are sent so that someone can open up an auction for X dummy hashes when they are only really interested in bidding for one. This will increase the cost for an attacker to simply bid blindly on all new auctions. Dummy auctions that are open but not bid on are closed after a week.\",\"params\":{\"_hashes\":\"An array of hashes, at least one of which you presumably want to bid on\"}},\"startAuctionsAndBid(bytes32[],bytes32)\":{\"details\":\"Start a set of auctions and bid on one of them     * This method functions identically to calling `startAuctions` followed by `newBid`, but all in one transaction.\",\"params\":{\"hashes\":\"A list of hashes to start auctions on.\",\"sealedBid\":\"A sealed bid for one of the auctions.\"}},\"transfer(bytes32,address)\":{\"details\":\"The owner of a domain may transfer it to someone else at any time.\",\"params\":{\"_hash\":\"The node to transfer\",\"newOwner\":\"The address to transfer ownership to\"}},\"transferRegistrars(bytes32)\":{\"details\":\"Transfers the deed to the current registrar, if different from this one.     * Used during the upgrade process to a permanent registrar.\",\"params\":{\"_hash\":\"The name hash to transfer.\"}},\"unsealBid(bytes32,uint256,bytes32)\":{\"details\":\"Submit the properties of a bid to reveal them\",\"params\":{\"_hash\":\"The node in the sealedBid\",\"_salt\":\"The sale in the sealedBid\",\"_value\":\"The bid amount in the sealedBid\"}}},\"title\":\"Registrar\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/makoto/work/ens/ens/contracts/HashRegistrar.sol\":\"HashRegistrar\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/makoto/work/ens/ens/contracts/Deed.sol\":{\"keccak256\":\"0x7b4abd2f65e2e093743077b899d0fb4952627ad7ff6104b840f9869f5baa5e96\",\"urls\":[\"bzz-raw://d72dc40eb83ded3cca64d6c1b9958f665f4cd61115fed4d32dfd62d0c6ded0fc\",\"dweb:/ipfs/Qmdkef7QyeJDF96ToptWRWroYYuD8XjCvrtxy46dA62iA2\"]},\"/Users/makoto/work/ens/ens/contracts/DeedImplementation.sol\":{\"keccak256\":\"0x91242ba8032d5e01a8a59da84afb4d0d5b1007d4257bde8e6caa20fbc700cdc7\",\"urls\":[\"bzz-raw://6810d6c6038674ba3736a199aa71d2a9bcbbb10bffc796f13e1b52de0de91854\",\"dweb:/ipfs/QmdSjH6EhvqTnqhVKkUkvs6PVT67wAxq4gwerFLZ4UsD5c\"]},\"/Users/makoto/work/ens/ens/contracts/ENS.sol\":{\"keccak256\":\"0x10b88673d8c180cd62523be4fec7607c65594eb4f0c561fa0fbc0784422b4871\",\"urls\":[\"bzz-raw://b3de1882a4a1a1b13c27ee6dc04cc58c34ac392c80cad507de2cdfa8c02712fe\",\"dweb:/ipfs/QmeKcaBF8QdJjXiqFrPJkAtK3et5kUL8XJrnHjwhAThRMT\"]},\"/Users/makoto/work/ens/ens/contracts/HashRegistrar.sol\":{\"keccak256\":\"0xfa35370373bb3f4393d2b32908c526651fbc46cad2e313c9c8b2e6d051083b11\",\"urls\":[\"bzz-raw://1dbfe101894eb558901c4020e113a5b63c0f1562112902736093df5eebe81afd\",\"dweb:/ipfs/QmPDdcczyuE8iAHauYWrLCG3FSF8vKmDAW2r2ZGvpR1NTs\"]},\"/Users/makoto/work/ens/ens/contracts/Registrar.sol\":{\"keccak256\":\"0xaef3f85ba0cf0544485d506a3f93719a90f8f28ef6c59f7175955768bec719bb\",\"urls\":[\"bzz-raw://fc1be7eec872590585a2dfbc0b3d0ef332444dd528ee75e96fb107f265ccc5e7\",\"dweb:/ipfs/QmUCo66Bpmic9rHjdjw2VrmmJ7c7Ma1oHJ2ZvbtctsDM6g\"]}},\"version\":1}",
  "bytecode": "0x60806040523480156200001157600080fd5b50604051620041cd380380620041cd833981810160405260608110156200003757600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160018190555060008111620000b35742620000b5565b805b6004819055505050506140ff80620000ce6000396000f3fe6080604052600436106101405760003560e01c806379ce9fac116100b6578063de10f04b1161006f578063de10f04b14610734578063e27fe50f146107ba578063ea9e107a14610840578063ede8acdb146108a5578063faff50a8146108e0578063febefd611461090b57610140565b806379ce9fac146105b1578063935033371461060c578063983b94fb146106695780639c67f06f146106a4578063ae1a0b0c146106cf578063ce92dced1461070657610140565b8063267b692211610108578063267b6922146103335780633f15457f146103d857806347872b421461042f5780635ddae2831461047e5780635e431709146104b957806361d585da1461055457610140565b80630230a07c1461014557806313c89a8f1461018057806315f73331146101cf57806322ec1244146102555780632525f5c1146102d8575b600080fd5b34801561015157600080fd5b5061017e6004803603602081101561016857600080fd5b810190808035906020019092919050505061098e565b005b34801561018c57600080fd5b506101b9600480360360208110156101a357600080fd5b8101908080359060200190929190505050610cf3565b6040518082815260200191505060405180910390f35b3480156101db57600080fd5b50610253600480360360208110156101f257600080fd5b810190808035906020019064010000000081111561020f57600080fd5b82018360208201111561022157600080fd5b8035906020019184600183028401116401000000008311171561024357600080fd5b9091929391929390505050610d16565b005b34801561026157600080fd5b506102c26004803603608081101561027857600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611199565b6040518082815260200191505060405180910390f35b3480156102e457600080fd5b50610331600480360360408110156102fb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611213565b005b34801561033f57600080fd5b5061036c6004803603602081101561035657600080fd5b8101908080359060200190929190505050611552565b6040518086600581111561037c57fe5b60ff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018381526020018281526020019550505050505060405180910390f35b3480156103e457600080fd5b506103ed6115c1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561043b57600080fd5b5061047c6004803603606081101561045257600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506115e6565b005b34801561048a57600080fd5b506104b7600480360360208110156104a157600080fd5b8101908080359060200190929190505050611e4f565b005b3480156104c557600080fd5b50610512600480360360408110156104dc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061225d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561056057600080fd5b5061058d6004803603602081101561057757600080fd5b810190808035906020019092919050505061229f565b6040518082600581111561059d57fe5b60ff16815260200191505060405180910390f35b3480156105bd57600080fd5b5061060a600480360360408110156105d457600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612328565b005b34801561061857600080fd5b5061064f6004803603604081101561062f57600080fd5b81019080803590602001909291908035906020019092919050505061255d565b604051808215151515815260200191505060405180910390f35b34801561067557600080fd5b506106a26004803603602081101561068c57600080fd5b8101908080359060200190929190505050612572565b005b3480156106b057600080fd5b506106b9612915565b6040518082815260200191505060405180910390f35b3480156106db57600080fd5b506106e461291b565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b6107326004803603602081101561071c57600080fd5b8101908080359060200190929190505050612922565b005b34801561074057600080fd5b506107b86004803603602081101561075757600080fd5b810190808035906020019064010000000081111561077457600080fd5b82018360208201111561078657600080fd5b803590602001918460208302840111640100000000831117156107a857600080fd5b909192939192939050505061292e565b005b3480156107c657600080fd5b5061083e600480360360208110156107dd57600080fd5b81019080803590602001906401000000008111156107fa57600080fd5b82018360208201111561080c57600080fd5b8035906020019184602083028401116401000000008311171561082e57600080fd5b90919293919293905050506129db565b005b34801561084c57600080fd5b506108a36004803603606081101561086357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612a29565b005b3480156108b157600080fd5b506108de600480360360208110156108c857600080fd5b8101908080359060200190929190505050612a2e565b005b3480156108ec57600080fd5b506108f5612a3a565b6040518082815260200191505060405180910390f35b61098c6004803603604081101561092157600080fd5b810190808035906020019064010000000081111561093e57600080fd5b82018360208201111561095057600080fd5b8035906020019184602083028401116401000000008311171561097257600080fd5b909192939192939080359060200190929190505050612a40565b005b806002600581111561099c57fe5b6109a58261229f565b60058111156109b057fe5b148015610a9e57506002600082815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a3457600080fd5b505afa158015610a48573d6000803e3d6000fd5b505050506040513d6020811015610a5e57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610aa757600080fd5b600060026000848152602001908152602001600020905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506301e1338082600101540142101580610bda57503073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be36001546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610b8657600080fd5b505afa158015610b9a573d6000803e3d6000fd5b505050506040513d6020811015610bb057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614155b610be357600080fd5b600082600201819055506000826003018190555060008260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c4484612a98565b8073ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e86040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610c9957600080fd5b505af1158015610cad573d6000803e3d6000fd5b50505050837f292b79b9246fa2c8e77d3fe195b251f9cb839d7d038e667c069ee7708c631e1683600201546040518082815260200191505060405180910390a250505050565b60006080808360001c901c6249d40063ffffffff1602901c600454019050919050565b818160405160200180806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509350505050604051602081830303815290604052805190602001206002806005811115610d7757fe5b610d808361229f565b6005811115610d8b57fe5b14610d9557600080fd5b6006610de485858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612e24565b1115610def57600080fd5b6000848460405160200180806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505093505050506040516020818303038152906040528051906020012090506000600260008381526020019081526020016000209050610e6682612a98565b600073ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110d257610ed38160020154662386f26fc10000612ee2565b81600201819055508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b0c809726002836002015481610f2957fe5b0460006040518363ffffffff1660e01b8152600401808381526020018215151515815260200192505050600060405180830381600087803b158015610f6d57600080fd5b505af1158015610f81573d6000803e3d6000fd5b505050508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166313af4035336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561102857600080fd5b505af115801561103c573d6000803e3d6000fd5b505050508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e86040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156110b957600080fd5b505af11580156110cd573d6000803e3d6000fd5b505050505b85856040518083838082843780830192505050925050506040518091039020827f1f9c649fe47e58bb60f4e52f0d90e4c47a526c9f90c5113df842c025970b66ad83600201548460010154604051808381526020018281526020019250505060405180910390a3600081600201819055506000816003018190555060008160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050565b600084848484604051602001808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401838152602001828152602001945050505050604051602081830303815290604052805190602001209050949350505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156113555750621275006206978063ffffffff168273ffffffffffffffffffffffffffffffffffffffff166305b344106040518163ffffffff1660e01b815260040160206040518083038186803b15801561131457600080fd5b505afa158015611328573d6000803e3d6000fd5b505050506040513d602081101561133e57600080fd5b810190808051906020019092919050505001014210155b61135e57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166313af4035336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156113dd57600080fd5b505af11580156113f1573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663bbe4277160056040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561144957600080fd5b505af115801561145d573d6000803e3d6000fd5b505050506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff16827f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e760006005604051808381526020018260ff1681526020019250505060405180910390a3505050565b6000806000806000806002600088815260200190815260200160002090506115798761229f565b8160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826001015483600201548460030154955095509550955095505091939590929450565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006115f484338585611199565b90506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156116a557600080fd5b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060026000878152602001908152602001600020905060006117d8868473ffffffffffffffffffffffffffffffffffffffff16633fa4f2456040518163ffffffff1660e01b815260040160206040518083038186803b15801561179857600080fd5b505afa1580156117ac573d6000803e3d6000fd5b505050506040513d60208110156117c257600080fd5b8101908080519060200190929190505050612efe565b90508273ffffffffffffffffffffffffffffffffffffffff1663b0c809728260016040518363ffffffff1660e01b8152600401808381526020018215151515815260200192505050600060405180830381600087803b15801561183a57600080fd5b505af115801561184e573d6000803e3d6000fd5b50505050600061185d8861229f565b90506002600581111561186c57fe5b81600581111561187857fe5b141561194a578373ffffffffffffffffffffffffffffffffffffffff1663bbe4277160056040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156118d257600080fd5b505af11580156118e6573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff16887f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7846001604051808381526020018260ff1681526020019250505060405180910390a3611e45565b6004600581111561195757fe5b81600581111561196357fe5b1461196d57600080fd5b662386f26fc10000821080611a1057506202a30063ffffffff168360010154038473ffffffffffffffffffffffffffffffffffffffff166305b344106040518163ffffffff1660e01b815260040160206040518083038186803b1580156119d357600080fd5b505afa1580156119e7573d6000803e3d6000fd5b505050506040513d60208110156119fd57600080fd5b8101908080519060200190929190505050115b15611ae2578373ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e36040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611a6a57600080fd5b505af1158015611a7e573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff16887f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7846000604051808381526020018260ff1681526020019250505060405180910390a3611e44565b8260030154821115611c9757600073ffffffffffffffffffffffffffffffffffffffff168360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bde5760008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e36040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611bc457600080fd5b505af1158015611bd8573d6000803e3d6000fd5b50505050505b82600301548360020181905550818360030181905550838360000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff16887f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7846002604051808381526020018260ff1681526020019250505060405180910390a3611e43565b8260020154821115611d79578183600201819055508373ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e36040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611d0157600080fd5b505af1158015611d15573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff16887f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7846003604051808381526020018260ff1681526020019250505060405180910390a3611e42565b8373ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e36040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611dce57600080fd5b505af1158015611de2573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff16887f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7846004604051808381526020018260ff1681526020019250505060405180910390a35b5b5b5b5050505050505050565b8060026005811115611e5d57fe5b611e668261229f565b6005811115611e7157fe5b148015611f5f57506002600082815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611ef557600080fd5b505afa158015611f09573d6000803e3d6000fd5b505050506040513d6020811015611f1f57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611f6857600080fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be36001546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611fde57600080fd5b505afa158015611ff2573d6000803e3d6000fd5b505050506040513d602081101561200857600080fd5b810190808051906020019092919050505090503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561205457600080fd5b60006002600085815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663faab9d39836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561210e57600080fd5b505af1158015612122573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663ea9e107a858360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600101546040518463ffffffff1660e01b8152600401808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156121dd57600080fd5b505af11580156121f1573d6000803e3d6000fd5b5050505060008160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008160010181905550600081600201819055506000816003018190555050505050565b60036020528160005260406000206020528060005260406000206000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806002600084815260200190815260200160002090506122c1834261255d565b6122cf576005915050612323565b8060010154421015612306576202a30063ffffffff168160010154034210156122fc576001915050612323565b6004915050612323565b60008160030154141561231d576000915050612323565b60029150505b919050565b816002600581111561233657fe5b61233f8261229f565b600581111561234a57fe5b14801561243857506002600082815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156123ce57600080fd5b505afa1580156123e2573d6000803e3d6000fd5b505050506040513d60208110156123f857600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61244157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561247b57600080fd5b60006002600085815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166313af4035846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561253557600080fd5b505af1158015612549573d6000803e3d6000fd5b505050506125578484612f1a565b50505050565b600061256883610cf3565b8211905092915050565b806002600581111561258057fe5b6125898261229f565b600581111561259457fe5b14801561268257506002600082815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561261857600080fd5b505afa15801561262c573d6000803e3d6000fd5b505050506040513d602081101561264257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61268b57600080fd5b60006002600084815260200190815260200160002090506126b78160020154662386f26fc10000612ee2565b81600201819055508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b0c80972826002015460016040518363ffffffff1660e01b8152600401808381526020018215151515815260200192505050600060405180830381600087803b15801561274757600080fd5b505af115801561275b573d6000803e3d6000fd5b5050505061280d838260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156127cd57600080fd5b505afa1580156127e1573d6000803e3d6000fd5b505050506040513d60208110156127f757600080fd5b8101908080519060200190929190505050612f1a565b8060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561287757600080fd5b505afa15801561288b573d6000803e3d6000fd5b505050506040513d60208110156128a157600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16837f0f0c27adfd84b60b6f456b0e87cdccb1e5fb9603991588d87fa99f5b6b61e67083600201548460010154604051808381526020018281526020019250505060405180910390a3505050565b60045481565b6249d40081565b61292b816130ef565b50565b600082829050141561293f57600080fd5b6002600581111561294c57fe5b61296d83836001868690500381811061296157fe5b9050602002013561229f565b600581111561297857fe5b141561298357600080fd5b6129d760018383905003838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506001546132f4565b5050565b612a25828280806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506135d6565b5050565b505050565b612a3781613612565b50565b60015481565b612a8a838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506135d6565b612a93816130ef565b505050565b3073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be36001546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015612b2357600080fd5b505afa158015612b37573d6000803e3d6000fd5b505050506040513d6020811015612b4d57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff161415612e21576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab592360015483306040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b158015612c2c57600080fd5b505af1158015612c40573d6000803e3d6000fd5b505050506040513d6020811015612c5657600080fd5b81019080805190602001909291905050505060006001548260405160200180838152602001828152602001925050506040516020818303038152906040528051906020012090506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a8260006040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b158015612d4657600080fd5b505af1158015612d5a573d6000803e3d6000fd5b505050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b0fc9c38260006040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b158015612e0757600080fd5b505af1158015612e1b573d6000803e3d6000fd5b50505050505b50565b6000808060018401915081845101905060008090505b81831015612ed757600060ff845116905060808160ff161015612e6257600184019350612ec9565b60e08160ff161015612e7957600284019350612ec8565b60f08160ff161015612e9057600384019350612ec7565b60f88160ff161015612ea757600484019350612ec6565b60fc8160ff161015612ebe57600584019350612ec5565b6006840193505b5b5b5b5b508080600101915050612e3a565b809350505050919050565b600081831115612ef457829050612ef8565b8190505b92915050565b600081831015612f1057829050612f14565b8190505b92915050565b3073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be36001546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015612fa557600080fd5b505afa158015612fb9573d6000803e3d6000fd5b505050506040513d6020811015612fcf57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614156130eb576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab592360015484846040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b1580156130ae57600080fd5b505af11580156130c2573d6000803e3d6000fd5b505050506040513d60208110156130d857600080fd5b8101908080519060200190929190505050505b5050565b600073ffffffffffffffffffffffffffffffffffffffff16600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461319857600080fd5b662386f26fc100003410156131ac57600080fd5b600034336040516131bc906137f0565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506040518091039082f08015801561320d573d6000803e3d6000fd5b509050905080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff16827fb556ff269c1b6714f432c36431e2041d28436a73b6c3f19c021827bbdc6bfc29346040518082815260200191505060405180910390a35050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab59238284868151811061333e57fe5b6020026020010151306040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b1580156133b757600080fd5b505af11580156133cb573d6000803e3d6000fd5b505050506040513d60208110156133e157600080fd5b8101908080519060200190929190505050508082848151811061340057fe5b60200260200101516040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209050600083111561344f5761344e6001840383836132f4565b5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a8260006040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b1580156134f857600080fd5b505af115801561350c573d6000803e3d6000fd5b505050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b0fc9c38260006040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b1580156135b957600080fd5b505af11580156135cd573d6000803e3d6000fd5b50505050505050565b60008090505b815181101561360e576136018282815181106135f457fe5b6020026020010151613612565b80806001019150506135dc565b5050565b600454421015801561362c5750630784ce00600454014211155b801561371157503073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be36001546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156136be57600080fd5b505afa1580156136d2573d6000803e3d6000fd5b505050506040513d60208110156136e857600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16145b61371a57600080fd5b60006137258261229f565b90506001600581111561373457fe5b81600581111561374057fe5b141561374c57506137ed565b6000600581111561375957fe5b81600581111561376557fe5b1461376f57600080fd5b60006002600084815260200190815260200160002090506206978063ffffffff16420181600101819055506000816002018190555060008160030181905550827f87e97e825a1d1fa0c54e1d36c7506c1dea8b1efd451fe68b000cf96f7cf4000382600101546040518082815260200191505060405180910390a250505b50565b6108cd806137fe8339019056fe60806040526040516108cd3803806108cd8339818101604052602081101561002657600080fd5b8101908080519060200190929190505050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426003819055506001600560006101000a81548160ff02191690831515021790555034600481905550506107dc806100f16000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063674f220f11610066578063674f220f146101225780638da5cb5b1461016c578063b0c80972146101b6578063bbe42771146101f0578063faab9d391461021e57610093565b806305b34410146100985780630b5ab3d5146100b657806313af4035146100c05780633fa4f24514610104575b600080fd5b6100a0610262565b6040518082815260200191505060405180910390f35b6100be610267565b005b610102600480360360208110156100d657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610271565b005b61010c61040d565b6040518082815260200191505060405180910390f35b61012a610417565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610174610441565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101ee600480360360408110156101cc57600080fd5b810190808035906020019092919080351515906020019092919050505061046a565b005b61021c6004803603602081101561020657600080fd5b8101908080359060200190929190505050610561565b005b6102606004803603602081101561023457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610677565b005b600090565b61026f610715565b565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102cb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561030557600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf3681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600454905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104c457600080fd5b600560009054906101000a900460ff166104dd57600080fd5b8160045410156104ec57600080fd5b816004819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8347039081150290604051600060405180830381858888f1935050505080610554575080155b61055d57600080fd5b5050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105bb57600080fd5b600560009054906101000a900460ff166105d457600080fd5b6000600560006101000a81548160ff02191690831515021790555061dead73ffffffffffffffffffffffffffffffffffffffff166108fc6103e847846103e803028161061c57fe5b049081150290604051600060405180830381858888f1935050505061064057600080fd5b7fbb2ce2f51803bba16bc85282b47deeea9a5c6223eabea1077be696b3f265cf1360405160405180910390a1610674610715565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106d157600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600560009054906101000a900460ff161561072f57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050156107a55761dead73ffffffffffffffffffffffffffffffffffffffff16ff5b56fea265627a7a7231582049299ebb10bf817c82ef5b7562d5c3a309348d9b2649d4bdd0a541e52496d9da64736f6c63430005100032a265627a7a723158203f15464a380971779f86f3d509713e701569f5f1f3c5e21527df44905a1fb02164736f6c63430005100032",
  "deployedBytecode": "0x6080604052600436106101405760003560e01c806379ce9fac116100b6578063de10f04b1161006f578063de10f04b14610734578063e27fe50f146107ba578063ea9e107a14610840578063ede8acdb146108a5578063faff50a8146108e0578063febefd611461090b57610140565b806379ce9fac146105b1578063935033371461060c578063983b94fb146106695780639c67f06f146106a4578063ae1a0b0c146106cf578063ce92dced1461070657610140565b8063267b692211610108578063267b6922146103335780633f15457f146103d857806347872b421461042f5780635ddae2831461047e5780635e431709146104b957806361d585da1461055457610140565b80630230a07c1461014557806313c89a8f1461018057806315f73331146101cf57806322ec1244146102555780632525f5c1146102d8575b600080fd5b34801561015157600080fd5b5061017e6004803603602081101561016857600080fd5b810190808035906020019092919050505061098e565b005b34801561018c57600080fd5b506101b9600480360360208110156101a357600080fd5b8101908080359060200190929190505050610cf3565b6040518082815260200191505060405180910390f35b3480156101db57600080fd5b50610253600480360360208110156101f257600080fd5b810190808035906020019064010000000081111561020f57600080fd5b82018360208201111561022157600080fd5b8035906020019184600183028401116401000000008311171561024357600080fd5b9091929391929390505050610d16565b005b34801561026157600080fd5b506102c26004803603608081101561027857600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611199565b6040518082815260200191505060405180910390f35b3480156102e457600080fd5b50610331600480360360408110156102fb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611213565b005b34801561033f57600080fd5b5061036c6004803603602081101561035657600080fd5b8101908080359060200190929190505050611552565b6040518086600581111561037c57fe5b60ff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018381526020018281526020019550505050505060405180910390f35b3480156103e457600080fd5b506103ed6115c1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561043b57600080fd5b5061047c6004803603606081101561045257600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506115e6565b005b34801561048a57600080fd5b506104b7600480360360208110156104a157600080fd5b8101908080359060200190929190505050611e4f565b005b3480156104c557600080fd5b50610512600480360360408110156104dc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061225d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561056057600080fd5b5061058d6004803603602081101561057757600080fd5b810190808035906020019092919050505061229f565b6040518082600581111561059d57fe5b60ff16815260200191505060405180910390f35b3480156105bd57600080fd5b5061060a600480360360408110156105d457600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612328565b005b34801561061857600080fd5b5061064f6004803603604081101561062f57600080fd5b81019080803590602001909291908035906020019092919050505061255d565b604051808215151515815260200191505060405180910390f35b34801561067557600080fd5b506106a26004803603602081101561068c57600080fd5b8101908080359060200190929190505050612572565b005b3480156106b057600080fd5b506106b9612915565b6040518082815260200191505060405180910390f35b3480156106db57600080fd5b506106e461291b565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b6107326004803603602081101561071c57600080fd5b8101908080359060200190929190505050612922565b005b34801561074057600080fd5b506107b86004803603602081101561075757600080fd5b810190808035906020019064010000000081111561077457600080fd5b82018360208201111561078657600080fd5b803590602001918460208302840111640100000000831117156107a857600080fd5b909192939192939050505061292e565b005b3480156107c657600080fd5b5061083e600480360360208110156107dd57600080fd5b81019080803590602001906401000000008111156107fa57600080fd5b82018360208201111561080c57600080fd5b8035906020019184602083028401116401000000008311171561082e57600080fd5b90919293919293905050506129db565b005b34801561084c57600080fd5b506108a36004803603606081101561086357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612a29565b005b3480156108b157600080fd5b506108de600480360360208110156108c857600080fd5b8101908080359060200190929190505050612a2e565b005b3480156108ec57600080fd5b506108f5612a3a565b6040518082815260200191505060405180910390f35b61098c6004803603604081101561092157600080fd5b810190808035906020019064010000000081111561093e57600080fd5b82018360208201111561095057600080fd5b8035906020019184602083028401116401000000008311171561097257600080fd5b909192939192939080359060200190929190505050612a40565b005b806002600581111561099c57fe5b6109a58261229f565b60058111156109b057fe5b148015610a9e57506002600082815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a3457600080fd5b505afa158015610a48573d6000803e3d6000fd5b505050506040513d6020811015610a5e57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610aa757600080fd5b600060026000848152602001908152602001600020905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506301e1338082600101540142101580610bda57503073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be36001546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610b8657600080fd5b505afa158015610b9a573d6000803e3d6000fd5b505050506040513d6020811015610bb057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614155b610be357600080fd5b600082600201819055506000826003018190555060008260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c4484612a98565b8073ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e86040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610c9957600080fd5b505af1158015610cad573d6000803e3d6000fd5b50505050837f292b79b9246fa2c8e77d3fe195b251f9cb839d7d038e667c069ee7708c631e1683600201546040518082815260200191505060405180910390a250505050565b60006080808360001c901c6249d40063ffffffff1602901c600454019050919050565b818160405160200180806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509350505050604051602081830303815290604052805190602001206002806005811115610d7757fe5b610d808361229f565b6005811115610d8b57fe5b14610d9557600080fd5b6006610de485858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612e24565b1115610def57600080fd5b6000848460405160200180806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505093505050506040516020818303038152906040528051906020012090506000600260008381526020019081526020016000209050610e6682612a98565b600073ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110d257610ed38160020154662386f26fc10000612ee2565b81600201819055508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b0c809726002836002015481610f2957fe5b0460006040518363ffffffff1660e01b8152600401808381526020018215151515815260200192505050600060405180830381600087803b158015610f6d57600080fd5b505af1158015610f81573d6000803e3d6000fd5b505050508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166313af4035336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561102857600080fd5b505af115801561103c573d6000803e3d6000fd5b505050508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e86040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156110b957600080fd5b505af11580156110cd573d6000803e3d6000fd5b505050505b85856040518083838082843780830192505050925050506040518091039020827f1f9c649fe47e58bb60f4e52f0d90e4c47a526c9f90c5113df842c025970b66ad83600201548460010154604051808381526020018281526020019250505060405180910390a3600081600201819055506000816003018190555060008160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050565b600084848484604051602001808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401838152602001828152602001945050505050604051602081830303815290604052805190602001209050949350505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156113555750621275006206978063ffffffff168273ffffffffffffffffffffffffffffffffffffffff166305b344106040518163ffffffff1660e01b815260040160206040518083038186803b15801561131457600080fd5b505afa158015611328573d6000803e3d6000fd5b505050506040513d602081101561133e57600080fd5b810190808051906020019092919050505001014210155b61135e57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166313af4035336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156113dd57600080fd5b505af11580156113f1573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663bbe4277160056040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561144957600080fd5b505af115801561145d573d6000803e3d6000fd5b505050506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff16827f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e760006005604051808381526020018260ff1681526020019250505060405180910390a3505050565b6000806000806000806002600088815260200190815260200160002090506115798761229f565b8160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826001015483600201548460030154955095509550955095505091939590929450565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006115f484338585611199565b90506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156116a557600080fd5b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060026000878152602001908152602001600020905060006117d8868473ffffffffffffffffffffffffffffffffffffffff16633fa4f2456040518163ffffffff1660e01b815260040160206040518083038186803b15801561179857600080fd5b505afa1580156117ac573d6000803e3d6000fd5b505050506040513d60208110156117c257600080fd5b8101908080519060200190929190505050612efe565b90508273ffffffffffffffffffffffffffffffffffffffff1663b0c809728260016040518363ffffffff1660e01b8152600401808381526020018215151515815260200192505050600060405180830381600087803b15801561183a57600080fd5b505af115801561184e573d6000803e3d6000fd5b50505050600061185d8861229f565b90506002600581111561186c57fe5b81600581111561187857fe5b141561194a578373ffffffffffffffffffffffffffffffffffffffff1663bbe4277160056040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156118d257600080fd5b505af11580156118e6573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff16887f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7846001604051808381526020018260ff1681526020019250505060405180910390a3611e45565b6004600581111561195757fe5b81600581111561196357fe5b1461196d57600080fd5b662386f26fc10000821080611a1057506202a30063ffffffff168360010154038473ffffffffffffffffffffffffffffffffffffffff166305b344106040518163ffffffff1660e01b815260040160206040518083038186803b1580156119d357600080fd5b505afa1580156119e7573d6000803e3d6000fd5b505050506040513d60208110156119fd57600080fd5b8101908080519060200190929190505050115b15611ae2578373ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e36040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611a6a57600080fd5b505af1158015611a7e573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff16887f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7846000604051808381526020018260ff1681526020019250505060405180910390a3611e44565b8260030154821115611c9757600073ffffffffffffffffffffffffffffffffffffffff168360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bde5760008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e36040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611bc457600080fd5b505af1158015611bd8573d6000803e3d6000fd5b50505050505b82600301548360020181905550818360030181905550838360000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff16887f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7846002604051808381526020018260ff1681526020019250505060405180910390a3611e43565b8260020154821115611d79578183600201819055508373ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e36040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611d0157600080fd5b505af1158015611d15573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff16887f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7846003604051808381526020018260ff1681526020019250505060405180910390a3611e42565b8373ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e36040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611dce57600080fd5b505af1158015611de2573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff16887f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7846004604051808381526020018260ff1681526020019250505060405180910390a35b5b5b5b5050505050505050565b8060026005811115611e5d57fe5b611e668261229f565b6005811115611e7157fe5b148015611f5f57506002600082815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611ef557600080fd5b505afa158015611f09573d6000803e3d6000fd5b505050506040513d6020811015611f1f57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611f6857600080fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be36001546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611fde57600080fd5b505afa158015611ff2573d6000803e3d6000fd5b505050506040513d602081101561200857600080fd5b810190808051906020019092919050505090503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561205457600080fd5b60006002600085815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663faab9d39836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561210e57600080fd5b505af1158015612122573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663ea9e107a858360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600101546040518463ffffffff1660e01b8152600401808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156121dd57600080fd5b505af11580156121f1573d6000803e3d6000fd5b5050505060008160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008160010181905550600081600201819055506000816003018190555050505050565b60036020528160005260406000206020528060005260406000206000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806002600084815260200190815260200160002090506122c1834261255d565b6122cf576005915050612323565b8060010154421015612306576202a30063ffffffff168160010154034210156122fc576001915050612323565b6004915050612323565b60008160030154141561231d576000915050612323565b60029150505b919050565b816002600581111561233657fe5b61233f8261229f565b600581111561234a57fe5b14801561243857506002600082815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156123ce57600080fd5b505afa1580156123e2573d6000803e3d6000fd5b505050506040513d60208110156123f857600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61244157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561247b57600080fd5b60006002600085815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166313af4035846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561253557600080fd5b505af1158015612549573d6000803e3d6000fd5b505050506125578484612f1a565b50505050565b600061256883610cf3565b8211905092915050565b806002600581111561258057fe5b6125898261229f565b600581111561259457fe5b14801561268257506002600082815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561261857600080fd5b505afa15801561262c573d6000803e3d6000fd5b505050506040513d602081101561264257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61268b57600080fd5b60006002600084815260200190815260200160002090506126b78160020154662386f26fc10000612ee2565b81600201819055508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b0c80972826002015460016040518363ffffffff1660e01b8152600401808381526020018215151515815260200192505050600060405180830381600087803b15801561274757600080fd5b505af115801561275b573d6000803e3d6000fd5b5050505061280d838260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156127cd57600080fd5b505afa1580156127e1573d6000803e3d6000fd5b505050506040513d60208110156127f757600080fd5b8101908080519060200190929190505050612f1a565b8060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561287757600080fd5b505afa15801561288b573d6000803e3d6000fd5b505050506040513d60208110156128a157600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16837f0f0c27adfd84b60b6f456b0e87cdccb1e5fb9603991588d87fa99f5b6b61e67083600201548460010154604051808381526020018281526020019250505060405180910390a3505050565b60045481565b6249d40081565b61292b816130ef565b50565b600082829050141561293f57600080fd5b6002600581111561294c57fe5b61296d83836001868690500381811061296157fe5b9050602002013561229f565b600581111561297857fe5b141561298357600080fd5b6129d760018383905003838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506001546132f4565b5050565b612a25828280806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506135d6565b5050565b505050565b612a3781613612565b50565b60015481565b612a8a838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506135d6565b612a93816130ef565b505050565b3073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be36001546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015612b2357600080fd5b505afa158015612b37573d6000803e3d6000fd5b505050506040513d6020811015612b4d57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff161415612e21576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab592360015483306040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b158015612c2c57600080fd5b505af1158015612c40573d6000803e3d6000fd5b505050506040513d6020811015612c5657600080fd5b81019080805190602001909291905050505060006001548260405160200180838152602001828152602001925050506040516020818303038152906040528051906020012090506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a8260006040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b158015612d4657600080fd5b505af1158015612d5a573d6000803e3d6000fd5b505050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b0fc9c38260006040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b158015612e0757600080fd5b505af1158015612e1b573d6000803e3d6000fd5b50505050505b50565b6000808060018401915081845101905060008090505b81831015612ed757600060ff845116905060808160ff161015612e6257600184019350612ec9565b60e08160ff161015612e7957600284019350612ec8565b60f08160ff161015612e9057600384019350612ec7565b60f88160ff161015612ea757600484019350612ec6565b60fc8160ff161015612ebe57600584019350612ec5565b6006840193505b5b5b5b5b508080600101915050612e3a565b809350505050919050565b600081831115612ef457829050612ef8565b8190505b92915050565b600081831015612f1057829050612f14565b8190505b92915050565b3073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be36001546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015612fa557600080fd5b505afa158015612fb9573d6000803e3d6000fd5b505050506040513d6020811015612fcf57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614156130eb576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab592360015484846040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b1580156130ae57600080fd5b505af11580156130c2573d6000803e3d6000fd5b505050506040513d60208110156130d857600080fd5b8101908080519060200190929190505050505b5050565b600073ffffffffffffffffffffffffffffffffffffffff16600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461319857600080fd5b662386f26fc100003410156131ac57600080fd5b600034336040516131bc906137f0565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506040518091039082f08015801561320d573d6000803e3d6000fd5b509050905080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff16827fb556ff269c1b6714f432c36431e2041d28436a73b6c3f19c021827bbdc6bfc29346040518082815260200191505060405180910390a35050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab59238284868151811061333e57fe5b6020026020010151306040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b1580156133b757600080fd5b505af11580156133cb573d6000803e3d6000fd5b505050506040513d60208110156133e157600080fd5b8101908080519060200190929190505050508082848151811061340057fe5b60200260200101516040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209050600083111561344f5761344e6001840383836132f4565b5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a8260006040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b1580156134f857600080fd5b505af115801561350c573d6000803e3d6000fd5b505050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b0fc9c38260006040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b1580156135b957600080fd5b505af11580156135cd573d6000803e3d6000fd5b50505050505050565b60008090505b815181101561360e576136018282815181106135f457fe5b6020026020010151613612565b80806001019150506135dc565b5050565b600454421015801561362c5750630784ce00600454014211155b801561371157503073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be36001546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156136be57600080fd5b505afa1580156136d2573d6000803e3d6000fd5b505050506040513d60208110156136e857600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16145b61371a57600080fd5b60006137258261229f565b90506001600581111561373457fe5b81600581111561374057fe5b141561374c57506137ed565b6000600581111561375957fe5b81600581111561376557fe5b1461376f57600080fd5b60006002600084815260200190815260200160002090506206978063ffffffff16420181600101819055506000816002018190555060008160030181905550827f87e97e825a1d1fa0c54e1d36c7506c1dea8b1efd451fe68b000cf96f7cf4000382600101546040518082815260200191505060405180910390a250505b50565b6108cd806137fe8339019056fe60806040526040516108cd3803806108cd8339818101604052602081101561002657600080fd5b8101908080519060200190929190505050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426003819055506001600560006101000a81548160ff02191690831515021790555034600481905550506107dc806100f16000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063674f220f11610066578063674f220f146101225780638da5cb5b1461016c578063b0c80972146101b6578063bbe42771146101f0578063faab9d391461021e57610093565b806305b34410146100985780630b5ab3d5146100b657806313af4035146100c05780633fa4f24514610104575b600080fd5b6100a0610262565b6040518082815260200191505060405180910390f35b6100be610267565b005b610102600480360360208110156100d657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610271565b005b61010c61040d565b6040518082815260200191505060405180910390f35b61012a610417565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610174610441565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101ee600480360360408110156101cc57600080fd5b810190808035906020019092919080351515906020019092919050505061046a565b005b61021c6004803603602081101561020657600080fd5b8101908080359060200190929190505050610561565b005b6102606004803603602081101561023457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610677565b005b600090565b61026f610715565b565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102cb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561030557600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf3681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600454905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104c457600080fd5b600560009054906101000a900460ff166104dd57600080fd5b8160045410156104ec57600080fd5b816004819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8347039081150290604051600060405180830381858888f1935050505080610554575080155b61055d57600080fd5b5050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105bb57600080fd5b600560009054906101000a900460ff166105d457600080fd5b6000600560006101000a81548160ff02191690831515021790555061dead73ffffffffffffffffffffffffffffffffffffffff166108fc6103e847846103e803028161061c57fe5b049081150290604051600060405180830381858888f1935050505061064057600080fd5b7fbb2ce2f51803bba16bc85282b47deeea9a5c6223eabea1077be696b3f265cf1360405160405180910390a1610674610715565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106d157600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600560009054906101000a900460ff161561072f57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050156107a55761dead73ffffffffffffffffffffffffffffffffffffffff16ff5b56fea265627a7a7231582049299ebb10bf817c82ef5b7562d5c3a309348d9b2649d4bdd0a541e52496d9da64736f6c63430005100032a265627a7a723158203f15464a380971779f86f3d509713e701569f5f1f3c5e21527df44905a1fb02164736f6c63430005100032",
  "sourceMap": "586:18452:6:-;;;1779:183;8:9:-1;5:2;;;30:1;27;20:12;5:2;1779:183:6;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1779:183:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1860:4;1854:3;;:10;;;;;;;;;;;;;;;;;;1885:9;1874:8;:20;;;;1935:1;1922:10;:14;:33;;1952:3;1922:33;;;1939:10;1922:33;1904:15;:51;;;;1779:183;;;586:18452;;;;;;",
  "deployedSourceMap": "586:18452:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8735:444;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8735:444:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8735:444:6;;;;;;;;;;;;;;;;;:::i;:::-;;14358:206;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14358:206:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14358:206:6;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9564:815;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9564:815:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9564:815:6;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;9564:815:6;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9564:815:6;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;9564:815:6;;;;;;;;;;;;:::i;:::-;;14853:178;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14853:178:6;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;14853:178:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6637:844;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6637:844:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6637:844:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12611:229;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12611:229:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12611:229:6;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;628:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;628:14:6;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4547:1975;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4547:1975:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4547:1975:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11472:565;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11472:565:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11472:565:6;;;;;;;;;;;;;;;;;:::i;:::-;;719:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;719:64:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;719:64:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13069:585;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13069:585:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13069:585:6;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8272:259;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8272:259:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8272:259:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13973:144;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13973:144:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13973:144:6;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7641:422;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7641:422:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7641:422:6;;;;;;;;;;;;;;;;;:::i;:::-;;977:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;977:27:6;;;:::i;:::-;;;;;;;;;;;;;;;;;;;884:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;884:45:6;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3727:87;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3727:87:6;;;;;;;;;;;;;;;;;:::i;:::-;;11008:231;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11008:231:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11008:231:6;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;11008:231:6;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;11008:231:6;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;11008:231:6;;;;;;;;;;;;:::i;:::-;;2771:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2771:100:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2771:100:6;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2771:100:6;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2771:100:6;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;2771:100:6;;;;;;;;;;;;:::i;:::-;;12433:172;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12433:172:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12433:172:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2094:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2094:83:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2094:83:6;;;;;;;;;;;;;;;;;:::i;:::-;;648:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;648:23:6;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4156:159;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4156:159:6;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;4156:159:6;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4156:159:6;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;4156:159:6;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8735:444;8790:5;1310:10;1294:26;;;;;;;;:12;1300:5;1294;:12::i;:::-;:26;;;;;;;;;:72;;;;;1338:8;:15;1347:5;1338:15;;;;;;;;;;;:20;;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1338:28:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1338:28:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1338:28:6;;;;;;;;;;;;;;;;1324:42;;:10;:42;;;1294:72;1286:81;;;;;;8807:15;8825:8;:15;8834:5;8825:15;;;;;;;;;;;8807:33;;8850:17;8870:1;:6;;;;;;;;;;;;8850:26;;8923:8;8902:1;:18;;;:29;8895:3;:36;;:76;;;;8966:4;8935:36;;:3;;;;;;;;;;;:9;;;8945:8;;8935:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8935:19:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8935:19:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8935:19:6;;;;;;;;;;;;;;;;:36;;;;8895:76;8887:85;;;;;;8993:1;8983;:7;;:11;;;;9019:1;9004;:12;;:16;;;;9044:1;9030;:6;;;:16;;;;;;;;;;;;;;;;;;9057:26;9077:5;9057:19;:26::i;:::-;9093:12;:22;;;9116:4;9093:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9093:28:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9093:28:6;;;;9149:5;9136:28;9156:1;:7;;;9136:28;;;;;;;;;;;;;;;;;;1377:1;;8735:444;;:::o;14358:206::-;14418:4;14501:3;14492;14482:5;14477:11;;:18;;922:7;14461:35;;;14460:44;;14441:15;;:64;14434:71;;14358:206;;;:::o;9564:815::-;9672:12;;9661:24;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;9661:24:6;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;9661:24:6;;;9651:35;;;;;;9688:10;1211:6;1195:22;;;;;;;;:12;1201:5;1195;:12::i;:::-;:22;;;;;;;;;1187:31;;;;;;9746:1;9722:20;9729:12;;9722:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;9722:20:6;;;;;;:6;:20::i;:::-;:25;;9714:34;;;;;;9758:12;9794;;9783:24;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;9783:24:6;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;9783:24:6;;;9773:35;;;;;;9758:50;;9819:15;9837:8;:14;9846:4;9837:14;;;;;;;;;;;9819:32;;9862:25;9882:4;9862:19;:25::i;:::-;9929:3;9902:31;;9910:1;:6;;;;;;;;;;;;9902:31;;;9898:321;;10060:22;10064:1;:7;;;961:10;10060:3;:22::i;:::-;10050:1;:7;;:32;;;;10096:1;:6;;;;;;;;;;;;:17;;;10122:1;10114;:7;;;:9;;;;;;10125:5;10096:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10096:35:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10096:35:6;;;;10145:1;:6;;;;;;;;;;;;:15;;;10161:10;10145:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10145:27:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10145:27:6;;;;10186:1;:6;;;;;;;;;;;;:16;;;10203:4;10186:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10186:22:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10186:22:6;;;;9898:321;10256:12;;10234:64;;;;;30:3:-1;22:6;14;1:33;57:3;49:6;45:16;35:26;;10234:64:6;;;;;;;;;;;;;10250:4;10234:64;10270:1;:7;;;10279:1;:18;;;10234:64;;;;;;;;;;;;;;;;;;;;;;;;10319:1;10309;:7;;:11;;;;10345:1;10330;:12;;:16;;;;10370:1;10356;:6;;;:16;;;;;;;;;;;;;;;;;;1228:1;;9564:815;;;;:::o;14853:178::-;14945:7;14998:4;15004:5;15011;15018:4;14981:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;14981:42:6;;;14971:53;;;;;;14964:60;;14853:178;;;;;;:::o;6637:844::-;6705:8;6716:10;:18;6727:6;6716:18;;;;;;;;;;;;;;;:24;6735:4;6716:24;;;;;;;;;;;;;;;;;;;;;6705:35;;7192:3;7168:28;;7176:3;7168:28;;;;:88;;;;;7249:7;827:6;7207:39;;:3;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7207:18:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7207:18:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7207:18:6;;;;;;;;;;;;;;;;:39;:49;7200:3;:56;;7168:88;7160:97;;;;;;7334:3;:12;;;7347:10;7334:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7334:24:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7334:24:6;;;;7368:3;:13;;;7382:1;7368:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7368:16:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7368:16:6;;;;7426:1;7394:10;:18;7405:6;7394:18;;;;;;;;;;;;;;;:24;7413:4;7394:24;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;7461:6;7443:31;;7455:4;7443:31;7469:1;7472;7443:31;;;;;;;;;;;;;;;;;;;;;;;;;;6637:844;;;:::o;12611:229::-;12666:4;12672:7;12681:4;12687;12693;12709:15;12727:8;:15;12736:5;12727:15;;;;;;;;;;;12709:33;;12760:12;12766:5;12760;:12::i;:::-;12782:1;:6;;;;;;;;;;;;12791:1;:18;;;12811:1;:7;;;12820:1;:12;;;12752:81;;;;;;;;;;;12611:229;;;;;;;:::o;628:14::-;;;;;;;;;;;;;:::o;4547:1975::-;4628:12;4643:40;4650:5;4657:10;4669:6;4677:5;4643:6;:40::i;:::-;4628:55;;4693:8;4704:10;:22;4715:10;4704:22;;;;;;;;;;;;;;;:28;4727:4;4704:28;;;;;;;;;;;;;;;;;;;;;4693:39;;4774:3;4750:28;;4758:3;4750:28;;;;4742:37;;;;;;4834:3;4790:10;:22;4801:10;4790:22;;;;;;;;;;;;;;;:28;4813:4;4790:28;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;4849:15;4867:8;:15;4876:5;4867:15;;;;;;;;;;;4849:33;;4892:10;4905:24;4909:6;4917:3;:9;;;:11;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4917:11:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4917:11:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4917:11:6;;;;;;;;;;;;;;;;4905:3;:24::i;:::-;4892:37;;4939:3;:14;;;4954:5;4961:4;4939:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4939:27:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4939:27:6;;;;4977:17;4997:12;5003:5;4997;:12::i;:::-;4977:32;;5039:10;5023:26;;;;;;;;:12;:26;;;;;;;;;5019:1497;;;5130:3;:13;;;5144:1;5130:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5130:16:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5130:16:6;;;;5184:10;5165:40;;5177:5;5165:40;5196:5;5203:1;5165:40;;;;;;;;;;;;;;;;;;;;;;;;;;5019:1497;;;5242:11;5226:27;;;;;;;;:12;:27;;;;;;;;;5222:1294;;5298:8;;;5222:1294;961:10;5327:5;:16;:74;;;;870:8;5368:33;;:1;:18;;;:33;5347:3;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5347:18:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5347:18:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5347:18:6;;;;;;;;;;;;;;;;:54;5327:74;5323:1193;;;5470:3;:13;;;5484:3;5470:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5470:18:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5470:18:6;;;;5526:10;5507:40;;5519:5;5507:40;5538:5;5545:1;5507:40;;;;;;;;;;;;;;;;;;;;;;;;;;5323:1193;;;5576:1;:12;;;5568:5;:20;5564:952;;;5711:3;5684:31;;5692:1;:6;;;;;;;;;;;;5684:31;;;5680:145;;5735:19;5757:1;:6;;;;;;;;;;;;5735:28;;5781:14;:24;;;5806:3;5781:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5781:29:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5781:29:6;;;;5680:145;;5972:1;:12;;;5962:1;:7;;:22;;;;6055:5;6040:1;:12;;:20;;;;6083:3;6074:1;:6;;;:12;;;;;;;;;;;;;;;;;;6124:10;6105:40;;6117:5;6105:40;6136:5;6143:1;6105:40;;;;;;;;;;;;;;;;;;;;;;;;;;5564:952;;;6174:1;:7;;;6166:5;:15;6162:354;;;6259:5;6249:1;:7;;:15;;;;6278:3;:13;;;6292:3;6278:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6278:18:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6278:18:6;;;;6334:10;6315:40;;6327:5;6315:40;6346:5;6353:1;6315:40;;;;;;;;;;;;;;;;;;;;;;;;;;6162:354;;;6428:3;:13;;;6442:3;6428:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6428:18:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6428:18:6;;;;6484:10;6465:40;;6477:5;6465:40;6496:5;6503:1;6465:40;;;;;;;;;;;;;;;;;;;;;;;;;;6162:354;5564:952;5323:1193;5019:1497;4547:1975;;;;;;;;:::o;11472:565::-;11534:5;1310:10;1294:26;;;;;;;;:12;1300:5;1294;:12::i;:::-;:26;;;;;;;;;:72;;;;;1338:8;:15;1347:5;1338:15;;;;;;;;;;;:20;;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1338:28:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1338:28:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1338:28:6;;;;;;;;;;;;;;;;1324:42;;:10;:42;;;1294:72;1286:81;;;;;;11551:17;11571:3;;;;;;;;;;;:9;;;11581:8;;11571:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11571:19:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11571:19:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11571:19:6;;;;;;;;;;;;;;;;11551:39;;11629:4;11608:26;;:9;:26;;;;11600:35;;;;;;11674:15;11692:8;:15;11701:5;11692:15;;;;;;;;;;;11674:33;;11717:1;:6;;;;;;;;;;;;:19;;;11737:9;11717:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11717:30:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11717:30:6;;;;11825:9;11815:44;;;11860:5;11867:1;:6;;;;;;;;;;;;11875:1;:18;;;11815:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11815:79:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11815:79:6;;;;11949:1;11935;:6;;;:16;;;;;;;;;;;;;;;;;;11982:1;11961;:18;;:22;;;;12003:1;11993;:7;;:11;;;;12029:1;12014;:12;;:16;;;;1377:1;;11472:565;;:::o;719:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13069:585::-;13120:4;13136:19;13158:8;:15;13167:5;13158:15;;;;;;;;;;;13136:37;;13189:21;13199:5;13206:3;13189:9;:21::i;:::-;13184:464;;13233:20;13226:27;;;;;13184:464;13280:5;:22;;;13274:3;:28;13270:378;;;870:8;13328:37;;:5;:22;;;:37;13322:3;:43;13318:158;;;13392:12;13385:19;;;;;13318:158;13450:11;13443:18;;;;;13270:378;13530:1;13510:5;:16;;;:21;13506:132;;;13558:9;13551:16;;;;;13506:132;13613:10;13606:17;;;13069:585;;;;:::o;8272:259::-;8350:5;1310:10;1294:26;;;;;;;;:12;1300:5;1294;:12::i;:::-;:26;;;;;;;;;:72;;;;;1338:8;:15;1347:5;1338:15;;;;;;;;;;;:20;;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1338:28:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1338:28:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1338:28:6;;;;;;;;;;;;;;;;1324:42;;:10;:42;;;1294:72;1286:81;;;;;;8395:3;8375:24;;:8;:24;;;;8367:33;;;;;;8411:15;8429:8;:15;8438:5;8429:15;;;;;;;;;;;8411:33;;8454:1;:6;;;;;;;;;;;;:15;;;8470:8;8454:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8454:25:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8454:25:6;;;;8489:35;8508:5;8515:8;8489:18;:35::i;:::-;1377:1;8272:259;;;:::o;13973:144::-;14045:12;14089:21;14104:5;14089:14;:21::i;:::-;14076:10;:34;14069:41;;13973:144;;;;:::o;7641:422::-;7700:5;1310:10;1294:26;;;;;;;;:12;1300:5;1294;:12::i;:::-;:26;;;;;;;;;:72;;;;;1338:8;:15;1347:5;1338:15;;;;;;;;;;;:20;;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1338:28:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1338:28:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1338:28:6;;;;;;;;;;;;;;;;1324:42;;:10;:42;;;1294:72;1286:81;;;;;;7717:15;7735:8;:15;7744:5;7735:15;;;;;;;;;;;7717:33;;7859:22;7863:1;:7;;;961:10;7859:3;:22::i;:::-;7849:1;:7;;:32;;;;7891:1;:6;;;;;;;;;;;;:17;;;7909:1;:7;;;7918:4;7891:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7891:32:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7891:32:6;;;;7934:41;7953:5;7960:1;:6;;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7960:14:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7960:14:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7960:14:6;;;;;;;;;;;;;;;;7934:18;:41::i;:::-;8012:1;:6;;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8012:14:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8012:14:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8012:14:6;;;;;;;;;;;;;;;;7990:66;;8005:5;7990:66;8028:1;:7;;;8037:1;:18;;;7990:66;;;;;;;;;;;;;;;;;;;;;;;;1377:1;7641:422;;:::o;977:27::-;;;;:::o;884:45::-;922:7;884:45;:::o;3727:87::-;3789:18;3797:9;3789:7;:18::i;:::-;3727:87;:::o;11008:231::-;11098:1;11081:6;;:13;;:18;;11073:27;;;;;;11154:10;11118:46;;;;;;;;:32;11124:6;;11147:1;11131:6;;:13;;:17;11124:25;;;;;;;;;;;;;11118:5;:32::i;:::-;:46;;;;;;;;;;11110:55;;;;;;11176:56;11212:1;11196:6;;:13;;:17;11215:6;;11176:56;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;11176:56:6;;;;;;11223:8;;11176:19;:56::i;:::-;11008:231;;:::o;2771:100::-;2841:23;2856:7;;2841:23;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2841:23:6;;;;;;:14;:23::i;:::-;2771:100;;:::o;12433:172::-;;;;:::o;2094:83::-;2150:20;2164:5;2150:13;:20::i;:::-;2094:83;:::o;648:23::-;;;;:::o;4156:159::-;4258:22;4273:6;;4258:22;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;4258:22:6;;;;;;:14;:22::i;:::-;4290:18;4298:9;4290:7;:18::i;:::-;4156:159;;;:::o;15037:355::-;15135:4;15104:36;;:3;;;;;;;;;;;:9;;;15114:8;;15104:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15104:19:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15104:19:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15104:19:6;;;;;;;;;;;;;;;;:36;;;15100:286;;;15156:3;;;;;;;;;;;:19;;;15176:8;;15186:5;15201:4;15156:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15156:51:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15156:51:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15156:51:6;;;;;;;;;;;;;;;;;15221:12;15263:8;;15273:5;15246:33;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;15246:33:6;;;15236:44;;;;;;15221:59;;15294:3;;;;;;;;;;;:15;;;15310:4;15324:3;15294:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15294:35:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15294:35:6;;;;15343:3;;;;;;;;;;;:12;;;15356:4;15370:3;15343:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15343:32:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15343:32:6;;;;15100:286;;15037:355;:::o;18194:841::-;18250:4;18384:8;18402;18457:1;18454;18450:9;18443:16;;18493:3;18489:1;18483:8;18479:18;18472:25;;18516:8;18527:1;18516:12;;18538:471;18554:3;18548;:9;18538:471;;;18580:7;18633:4;18627:3;18621:10;18617:21;18612:26;;18661:4;18657:1;:8;;;18653:346;;;18692:1;18685:8;;;;18653:346;;;18722:4;18718:1;:8;;;18714:285;;;18753:1;18746:8;;;;18714:285;;;18783:4;18779:1;:8;;;18775:224;;;18814:1;18807:8;;;;18775:224;;;18844:4;18840:1;:8;;;18836:163;;;18875:1;18868:8;;;;18836:163;;;18905:4;18901:1;:8;;;18897:102;;;18936:1;18929:8;;;;18897:102;;;18983:1;18976:8;;;;18897:102;18836:163;18775:224;18714:285;18653:346;18538:471;18559:5;;;;;;;18538:471;;;19025:3;19018:10;;;;;18194:841;;;:::o;17526:141::-;17578:4;17602:1;17598;:5;17594:66;;;17624:1;17617:8;;;;17594:66;17659:1;17652:8;;17526:141;;;;;:::o;17877:::-;17929:4;17953:1;17949;:5;17945:66;;;17975:1;17968:8;;;;17945:66;18010:1;18003:8;;17877:141;;;;;:::o;17127:189::-;17243:4;17212:36;;:3;;;;;;;;;;;:9;;;17222:8;;17212:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17212:19:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17212:19:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17212:19:6;;;;;;;;;;;;;;;;:36;;;17208:101;;;17262:3;;;;;;;;;;;:19;;;17282:8;;17292:5;17299:9;17262:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17262:47:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17262:47:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17262:47:6;;;;;;;;;;;;;;;;;17208:101;17127:189;;:::o;16006:402::-;16123:3;16069:58;;16077:10;:22;16088:10;16077:22;;;;;;;;;;;;;;;:33;16100:9;16077:33;;;;;;;;;;;;;;;;;;;;;16069:58;;;16061:67;;;;;;961:10;16146:9;:21;;16138:30;;;;;;16233:8;16275:9;16286:10;16244:53;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16244:53:6;;;16233:64;;16343:3;16307:10;:22;16318:10;16307:22;;;;;;;;;;;;;;;:33;16330:9;16307:33;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;16379:10;16361:40;;16368:9;16361:40;16391:9;16361:40;;;;;;;;;;;;;;;;;;16006:402;;:::o;16414:528::-;16549:3;;;;;;;;;;;:19;;;16569:4;16575:6;16582:3;16575:11;;;;;;;;;;;;;;16596:4;16549:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16549:53:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16549:53:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16549:53:6;;;;;;;;;;;;;;;;;16646:4;16652:6;16659:3;16652:11;;;;;;;;;;;;;;16629:35;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;16629:35:6;;;16619:46;;;;;;16612:53;;16730:1;16724:3;:7;16720:80;;;16747:42;16773:1;16767:3;:7;16776:6;16784:4;16747:19;:42::i;:::-;16720:80;16858:3;;;;;;;;;;;:15;;;16874:4;16888:3;16858:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16858:35:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16858:35:6;;;;16903:3;;;;;;;;;;;:12;;;16916:4;16930:3;16903:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16903:32:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16903:32:6;;;;16414:528;;;:::o;15832:168::-;15906:6;15915:1;15906:10;;15901:93;15922:7;:14;15918:1;:18;15901:93;;;15958:25;15972:7;15980:1;15972:10;;;;;;;;;;;;;;15958:13;:25::i;:::-;15938:4;;;;;;;15901:93;;;;15832:168;:::o;15398:428::-;1440:15;;1433:3;:22;;:69;;;;;1484:18;1466:15;;:36;1459:3;:43;;1433:69;:109;;;;;1537:4;1506:36;;:3;;;;;;;;;;;:9;;;1516:8;;1506:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1506:19:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1506:19:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1506:19:6;;;;;;;;;;;;;;;;:36;;;1433:109;1425:118;;;;;;15470:9;15482:12;15488:5;15482;:12::i;:::-;15470:24;;15516:12;15508:20;;;;;;;;:4;:20;;;;;;;;;15504:33;;;15530:7;;;15504:33;15562:9;15554:17;;;;;;;;:4;:17;;;;;;;;;15546:26;;;;;;15583:24;15610:8;:15;15619:5;15610:15;;;;;;;;;;;15583:42;;827:6;15665:24;;:3;:24;15635:10;:27;;:54;;;;15718:1;15699:10;:16;;:20;;;;15753:1;15729:10;:21;;:25;;;;15784:5;15769:50;15791:10;:27;;;15769:50;;;;;;;;;;;;;;;;;;1553:1;;;15398:428;:::o;586:18452::-;;;;;;;;:::o",
  "source": "pragma solidity ^0.5.0;\n\n\n/*\n\nTemporary Hash Registrar\n========================\n\nThis is a simplified version of a hash registrar. It is purporsefully limited:\nnames cannot be six letters or shorter, new auctions will stop after 4 years.\n\nThe plan is to test the basic features and then move to a new contract in at most\n2 years, when some sort of renewal mechanism will be enabled.\n*/\n\n\nimport \"./ENS.sol\";\nimport \"./DeedImplementation.sol\";\nimport \"./Registrar.sol\";\n\n/**\n * @title Registrar\n * @dev The registrar handles the auction process for each subnode of the node it owns.\n */\ncontract HashRegistrar is Registrar {\n    ENS public ens;\n    bytes32 public rootNode;\n\n    mapping (bytes32 => Entry) _entries;\n    mapping (address => mapping (bytes32 => Deed)) public sealedBids;\n\n    uint32 constant totalAuctionLength = 5 days;\n    uint32 constant revealPeriod = 48 hours;\n    uint32 public constant launchLength = 8 weeks;\n\n    uint constant minPrice = 0.01 ether;\n    uint public registryStarted;\n\n    struct Entry {\n        Deed deed;\n        uint registrationDate;\n        uint value;\n        uint highestBid;\n    }\n\n    modifier inState(bytes32 _hash, Mode _state) {\n        require(state(_hash) == _state);\n        _;\n    }\n\n    modifier onlyOwner(bytes32 _hash) {\n        require(state(_hash) == Mode.Owned && msg.sender == _entries[_hash].deed.owner());\n        _;\n    }\n\n    modifier registryOpen() {\n        require(now >= registryStarted && now <= registryStarted + (365 * 4) * 1 days && ens.owner(rootNode) == address(this));\n        _;\n    }\n\n    /**\n     * @dev Constructs a new Registrar, with the provided address as the owner of the root node.\n     *\n     * @param _ens The address of the ENS\n     * @param _rootNode The hash of the rootnode.\n     */\n    constructor(ENS _ens, bytes32 _rootNode, uint _startDate) public {\n        ens = _ens;\n        rootNode = _rootNode;\n        registryStarted = _startDate > 0 ? _startDate : now;\n    }\n\n    /**\n     * @dev Start an auction for an available hash\n     *\n     * @param _hash The hash to start an auction on\n     */\n    function startAuction(bytes32 _hash) external {\n        _startAuction(_hash);\n    }\n\n    /**\n     * @dev Start multiple auctions for better anonymity\n     *\n     * Anyone can start an auction by sending an array of hashes that they want to bid for.\n     * Arrays are sent so that someone can open up an auction for X dummy hashes when they\n     * are only really interested in bidding for one. This will increase the cost for an\n     * attacker to simply bid blindly on all new auctions. Dummy auctions that are\n     * open but not bid on are closed after a week.\n     *\n     * @param _hashes An array of hashes, at least one of which you presumably want to bid on\n     */\n    function startAuctions(bytes32[] calldata _hashes) external {\n        _startAuctions(_hashes);\n    }\n\n    /**\n     * @dev Submit a new sealed bid on a desired hash in a blind auction\n     *\n     * Bids are sent by sending a message to the main contract with a hash and an amount. The hash\n     * contains information about the bid, including the bidded hash, the bid amount, and a random\n     * salt. Bids are not tied to any one auction until they are revealed. The value of the bid\n     * itself can be masqueraded by sending more than the value of your actual bid. This is\n     * followed by a 48h reveal period. Bids revealed after this period will be burned and the ether unrecoverable.\n     * Since this is an auction, it is expected that most public hashes, like known domains and common dictionary\n     * words, will have multiple bidders pushing the price up.\n     *\n     * @param sealedBid A sealedBid, created by the shaBid function\n     */\n    function newBid(bytes32 sealedBid) external payable {\n        _newBid(sealedBid);\n    }\n\n    /**\n     * @dev Start a set of auctions and bid on one of them\n     *\n     * This method functions identically to calling `startAuctions` followed by `newBid`,\n     * but all in one transaction.\n     *\n     * @param hashes A list of hashes to start auctions on.\n     * @param sealedBid A sealed bid for one of the auctions.\n     */\n    function startAuctionsAndBid(bytes32[] calldata hashes, bytes32 sealedBid) external payable {\n        _startAuctions(hashes);\n        _newBid(sealedBid);\n    }\n\n    /**\n     * @dev Submit the properties of a bid to reveal them\n     *\n     * @param _hash The node in the sealedBid\n     * @param _value The bid amount in the sealedBid\n     * @param _salt The sale in the sealedBid\n     */\n    function unsealBid(bytes32 _hash, uint _value, bytes32 _salt) external {\n        bytes32 seal = shaBid(_hash, msg.sender, _value, _salt);\n        Deed bid = sealedBids[msg.sender][seal];\n        require(address(bid) != address(0x0));\n\n        sealedBids[msg.sender][seal] = Deed(address(0x0));\n        Entry storage h = _entries[_hash];\n        uint value = min(_value, bid.value());\n        bid.setBalance(value, true);\n\n        Mode auctionState = state(_hash);\n        if (auctionState == Mode.Owned) {\n            // Too late! Bidder loses their bid. Gets 0.5% back.\n            bid.closeDeed(5);\n            emit BidRevealed(_hash, msg.sender, value, 1);\n        } else if (auctionState != Mode.Reveal) {\n            // Invalid phase\n            revert();\n        } else if (value < minPrice || bid.creationDate() > h.registrationDate - revealPeriod) {\n            // Bid too low or too late, refund 99.5%\n            bid.closeDeed(995);\n            emit BidRevealed(_hash, msg.sender, value, 0);\n        } else if (value > h.highestBid) {\n            // New winner\n            // Cancel the other bid, refund 99.5%\n            if (address(h.deed) != address(0x0)) {\n                Deed previousWinner = h.deed;\n                previousWinner.closeDeed(995);\n            }\n\n            // Set new winner\n            // Per the rules of a vickery auction, the value becomes the previous highestBid\n            h.value = h.highestBid;  // will be zero if there's only 1 bidder\n            h.highestBid = value;\n            h.deed = bid;\n            emit BidRevealed(_hash, msg.sender, value, 2);\n        } else if (value > h.value) {\n            // Not winner, but affects second place\n            h.value = value;\n            bid.closeDeed(995);\n            emit BidRevealed(_hash, msg.sender, value, 3);\n        } else {\n            // Bid doesn't affect auction\n            bid.closeDeed(995);\n            emit BidRevealed(_hash, msg.sender, value, 4);\n        }\n    }\n\n    /**\n     * @dev Cancel a bid\n     *\n     * @param seal The value returned by the shaBid function\n     */\n    function cancelBid(address bidder, bytes32 seal) external {\n        Deed bid = sealedBids[bidder][seal];\n        \n        // If a sole bidder does not `unsealBid` in time, they have a few more days\n        // where they can call `startAuction` (again) and then `unsealBid` during\n        // the revealPeriod to get back their bid value.\n        // For simplicity, they should call `startAuction` within\n        // 9 days (2 weeks - totalAuctionLength), otherwise their bid will be\n        // cancellable by anyone.\n        require(address(bid) != address(0x0) && now >= bid.creationDate() + totalAuctionLength + 2 weeks);\n\n        // Send the canceller 0.5% of the bid, and burn the rest.\n        bid.setOwner(msg.sender);\n        bid.closeDeed(5);\n        sealedBids[bidder][seal] = Deed(0);\n        emit BidRevealed(seal, bidder, 0, 5);\n    }\n\n    /**\n     * @dev Finalize an auction after the registration date has passed\n     *\n     * @param _hash The hash of the name the auction is for\n     */\n    function finalizeAuction(bytes32 _hash) external onlyOwner(_hash) {\n        Entry storage h = _entries[_hash];\n        \n        // Handles the case when there's only a single bidder (h.value is zero)\n        h.value = max(h.value, minPrice);\n        h.deed.setBalance(h.value, true);\n\n        trySetSubnodeOwner(_hash, h.deed.owner());\n        emit HashRegistered(_hash, h.deed.owner(), h.value, h.registrationDate);\n    }\n\n    /**\n     * @dev The owner of a domain may transfer it to someone else at any time.\n     *\n     * @param _hash The node to transfer\n     * @param newOwner The address to transfer ownership to\n     */\n    function transfer(bytes32 _hash, address payable newOwner) external onlyOwner(_hash) {\n        require(newOwner != address(0x0));\n\n        Entry storage h = _entries[_hash];\n        h.deed.setOwner(newOwner);\n        trySetSubnodeOwner(_hash, newOwner);\n    }\n\n    /**\n     * @dev After some time, or if we're no longer the registrar, the owner can release\n     *      the name and get their ether back.\n     *\n     * @param _hash The node to release\n     */\n    function releaseDeed(bytes32 _hash) external onlyOwner(_hash) {\n        Entry storage h = _entries[_hash];\n        Deed deedContract = h.deed;\n\n        require(now >= h.registrationDate + 365 days || ens.owner(rootNode) != address(this));\n\n        h.value = 0;\n        h.highestBid = 0;\n        h.deed = Deed(0);\n\n        _tryEraseSingleNode(_hash);\n        deedContract.closeDeed(1000);\n        emit HashReleased(_hash, h.value);        \n    }\n\n    /**\n     * @dev Submit a name 6 characters long or less. If it has been registered,\n     *      the submitter will earn 50% of the deed value. \n     * \n     * We are purposefully handicapping the simplified registrar as a way \n     * to force it into being restructured in a few years.\n     *\n     * @param unhashedName An invalid name to search for in the registry.\n     */\n    function invalidateName(string calldata unhashedName)\n        external\n        inState(keccak256(abi.encode(unhashedName)), Mode.Owned)\n    {\n        require(strlen(unhashedName) <= 6);\n        bytes32 hash = keccak256(abi.encode(unhashedName));\n\n        Entry storage h = _entries[hash];\n\n        _tryEraseSingleNode(hash);\n\n        if (address(h.deed) != address(0x0)) {\n            // Reward the discoverer with 50% of the deed\n            // The previous owner gets 50%\n            h.value = max(h.value, minPrice);\n            h.deed.setBalance(h.value/2, false);\n            h.deed.setOwner(msg.sender);\n            h.deed.closeDeed(1000);\n        }\n\n        emit HashInvalidated(hash, unhashedName, h.value, h.registrationDate);\n\n        h.value = 0;\n        h.highestBid = 0;\n        h.deed = Deed(0);\n    }\n\n    /**\n     * @dev Allows anyone to delete the owner and resolver records for a (subdomain of) a\n     *      name that is not currently owned in the registrar. If passing, eg, 'foo.bar.eth',\n     *      the owner and resolver fields on 'foo.bar.eth' and 'bar.eth' will all be cleared.\n     *\n     * @param labels A series of label hashes identifying the name to zero out, rooted at the\n     *        registrar's root. Must contain at least one element. For instance, to zero \n     *        'foo.bar.eth' on a registrar that owns '.eth', pass an array containing\n     *        [keccak256('foo'), keccak256('bar')].\n     */\n    function eraseNode(bytes32[] calldata labels) external {\n        require(labels.length != 0);\n        require(state(labels[labels.length - 1]) != Mode.Owned);\n\n        _eraseNodeHierarchy(labels.length - 1, labels, rootNode);\n    }\n\n    /**\n     * @dev Transfers the deed to the current registrar, if different from this one.\n     *\n     * Used during the upgrade process to a permanent registrar.\n     *\n     * @param _hash The name hash to transfer.\n     */\n    function transferRegistrars(bytes32 _hash) external onlyOwner(_hash) {\n        address registrar = ens.owner(rootNode);\n        require(registrar != address(this));\n\n        // Migrate the deed\n        Entry storage h = _entries[_hash];\n        h.deed.setRegistrar(registrar);\n\n        // Call the new registrar to accept the transfer\n        Registrar(registrar).acceptRegistrarTransfer(_hash, h.deed, h.registrationDate);\n\n        // Zero out the Entry\n        h.deed = Deed(0);\n        h.registrationDate = 0;\n        h.value = 0;\n        h.highestBid = 0;\n    }\n\n    /**\n     * @dev Accepts a transfer from a previous registrar; stubbed out here since there\n     *      is no previous registrar implementing this interface.\n     *\n     * @param hash The sha3 hash of the label to transfer.\n     * @param deed The Deed object for the name being transferred in.\n     * @param registrationDate The date at which the name was originally registered.\n     */\n    function acceptRegistrarTransfer(bytes32 hash, Deed deed, uint registrationDate) external {\n        hash; deed; registrationDate; // Don't warn about unused variables\n    }\n\n    function entries(bytes32 _hash) external view returns (Mode, address, uint, uint, uint) {\n        Entry storage h = _entries[_hash];\n        return (state(_hash), address(h.deed), h.registrationDate, h.value, h.highestBid);\n    }\n\n    // State transitions for names:\n    //   Open -> Auction (startAuction)\n    //   Auction -> Reveal\n    //   Reveal -> Owned\n    //   Reveal -> Open (if nobody bid)\n    //   Owned -> Open (releaseDeed or invalidateName)\n    function state(bytes32 _hash) public view returns (Mode) {\n        Entry storage entry = _entries[_hash];\n\n        if (!isAllowed(_hash, now)) {\n            return Mode.NotYetAvailable;\n        } else if (now < entry.registrationDate) {\n            if (now < entry.registrationDate - revealPeriod) {\n                return Mode.Auction;\n            } else {\n                return Mode.Reveal;\n            }\n        } else {\n            if (entry.highestBid == 0) {\n                return Mode.Open;\n            } else {\n                return Mode.Owned;\n            }\n        }\n    }\n\n    /**\n     * @dev Determines if a name is available for registration yet\n     *\n     * Each name will be assigned a random date in which its auction\n     * can be started, from 0 to 8 weeks\n     *\n     * @param _hash The hash to start an auction on\n     * @param _timestamp The timestamp to query about\n     */\n    function isAllowed(bytes32 _hash, uint _timestamp) public view returns (bool allowed) {\n        return _timestamp > getAllowedTime(_hash);\n    }\n\n    /**\n     * @dev Returns available date for hash\n     *\n     * The available time from the `registryStarted` for a hash is proportional\n     * to its numeric value.\n     *\n     * @param _hash The hash to start an auction on\n     */\n    function getAllowedTime(bytes32 _hash) public view returns (uint) {\n        return registryStarted + ((launchLength * (uint(_hash) >> 128)) >> 128);\n        // Right shift operator: a >> b == a / 2**b\n    }\n\n    /**\n     * @dev Hash the values required for a secret bid\n     *\n     * @param hash The node corresponding to the desired namehash\n     * @param value The bid amount\n     * @param salt A random value to ensure secrecy of the bid\n     * @return The hash of the bid values\n     */\n    function shaBid(bytes32 hash, address owner, uint value, bytes32 salt) public pure returns (bytes32) {\n        return keccak256(abi.encodePacked(hash, owner, value, salt));\n    }\n\n    function _tryEraseSingleNode(bytes32 label) internal {\n        if (ens.owner(rootNode) == address(this)) {\n            ens.setSubnodeOwner(rootNode, label, address(this));\n            bytes32 node = keccak256(abi.encodePacked(rootNode, label));\n            ens.setResolver(node, address(0x0));\n            ens.setOwner(node, address(0x0));\n        }\n    }\n\n    function _startAuction(bytes32 _hash) internal registryOpen() {\n        Mode mode = state(_hash);\n        if (mode == Mode.Auction) return;\n        require(mode == Mode.Open);\n\n        Entry storage newAuction = _entries[_hash];\n        newAuction.registrationDate = now + totalAuctionLength;\n        newAuction.value = 0;\n        newAuction.highestBid = 0;\n        emit AuctionStarted(_hash, newAuction.registrationDate);\n    }\n\n    function _startAuctions(bytes32[] memory _hashes) internal {\n        for (uint i = 0; i < _hashes.length; i ++) {\n            _startAuction(_hashes[i]);\n        }\n    }\n\n    function _newBid(bytes32 sealedBid) internal {\n        require(address(sealedBids[msg.sender][sealedBid]) == address(0x0));\n        require(msg.value >= minPrice);\n\n        // Creates a new hash contract with the owner\n        Deed bid = (new DeedImplementation).value(msg.value)(msg.sender);\n        sealedBids[msg.sender][sealedBid] = bid;\n        emit NewBid(sealedBid, msg.sender, msg.value);\n    }\n\n    function _eraseNodeHierarchy(uint idx, bytes32[] memory labels, bytes32 node) internal {\n        // Take ownership of the node\n        ens.setSubnodeOwner(node, labels[idx], address(this));\n        node = keccak256(abi.encodePacked(node, labels[idx]));\n\n        // Recurse if there are more labels\n        if (idx > 0) {\n            _eraseNodeHierarchy(idx - 1, labels, node);\n        }\n\n        // Erase the resolver and owner records\n        ens.setResolver(node, address(0x0));\n        ens.setOwner(node, address(0x0));\n    }\n\n    /**\n     * @dev Assign the owner in ENS, if we're still the registrar\n     *\n     * @param _hash hash to change owner\n     * @param _newOwner new owner to transfer to\n     */\n    function trySetSubnodeOwner(bytes32 _hash, address _newOwner) internal {\n        if (ens.owner(rootNode) == address(this))\n            ens.setSubnodeOwner(rootNode, _hash, _newOwner);\n    }\n\n    /**\n     * @dev Returns the maximum of two unsigned integers\n     *\n     * @param a A number to compare\n     * @param b A number to compare\n     * @return The maximum of two unsigned integers\n     */\n    function max(uint a, uint b) internal pure returns (uint) {\n        if (a > b)\n            return a;\n        else\n            return b;\n    }\n\n    /**\n     * @dev Returns the minimum of two unsigned integers\n     *\n     * @param a A number to compare\n     * @param b A number to compare\n     * @return The minimum of two unsigned integers\n     */\n    function min(uint a, uint b) internal pure returns (uint) {\n        if (a < b)\n            return a;\n        else\n            return b;\n    }\n\n    /**\n     * @dev Returns the length of a given string\n     *\n     * @param s The string to measure the length of\n     * @return The length of the input string\n     */\n    function strlen(string memory s) internal pure returns (uint) {\n        s; // Don't warn about unused variables\n        // Starting here means the LSB will be the byte we care about\n        uint ptr;\n        uint end;\n        assembly {\n            ptr := add(s, 1)\n            end := add(mload(s), ptr)\n        }\n        uint len = 0;\n        for (len; ptr < end; len++) {\n            uint8 b;\n            assembly { b := and(mload(ptr), 0xFF) }\n            if (b < 0x80) {\n                ptr += 1;\n            } else if (b < 0xE0) {\n                ptr += 2;\n            } else if (b < 0xF0) {\n                ptr += 3;\n            } else if (b < 0xF8) {\n                ptr += 4;\n            } else if (b < 0xFC) {\n                ptr += 5;\n            } else {\n                ptr += 6;\n            }\n        }\n        return len;\n    }\n\n}\n",
  "sourcePath": "/Users/makoto/work/ens/ens/contracts/HashRegistrar.sol",
  "ast": {
    "absolutePath": "/Users/makoto/work/ens/ens/contracts/HashRegistrar.sol",
    "exportedSymbols": {
      "HashRegistrar": [
        2505
      ]
    },
    "id": 2506,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1032,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:6"
      },
      {
        "absolutePath": "/Users/makoto/work/ens/ens/contracts/ENS.sol",
        "file": "./ENS.sol",
        "id": 1033,
        "nodeType": "ImportDirective",
        "scope": 2506,
        "sourceUnit": 437,
        "src": "388:19:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/makoto/work/ens/ens/contracts/DeedImplementation.sol",
        "file": "./DeedImplementation.sol",
        "id": 1034,
        "nodeType": "ImportDirective",
        "scope": 2506,
        "sourceUnit": 300,
        "src": "408:34:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/makoto/work/ens/ens/contracts/Registrar.sol",
        "file": "./Registrar.sol",
        "id": 1035,
        "nodeType": "ImportDirective",
        "scope": 2506,
        "sourceUnit": 2728,
        "src": "443:25:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1036,
              "name": "Registrar",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2727,
              "src": "612:9:6",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Registrar_$2727",
                "typeString": "contract Registrar"
              }
            },
            "id": 1037,
            "nodeType": "InheritanceSpecifier",
            "src": "612:9:6"
          }
        ],
        "contractDependencies": [
          299,
          2727
        ],
        "contractKind": "contract",
        "documentation": "@title Registrar\n@dev The registrar handles the auction process for each subnode of the node it owns.",
        "fullyImplemented": true,
        "id": 2505,
        "linearizedBaseContracts": [
          2505,
          2727
        ],
        "name": "HashRegistrar",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 1039,
            "name": "ens",
            "nodeType": "VariableDeclaration",
            "scope": 2505,
            "src": "628:14:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_ENS_$436",
              "typeString": "contract ENS"
            },
            "typeName": {
              "contractScope": null,
              "id": 1038,
              "name": "ENS",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 436,
              "src": "628:3:6",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ENS_$436",
                "typeString": "contract ENS"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1041,
            "name": "rootNode",
            "nodeType": "VariableDeclaration",
            "scope": 2505,
            "src": "648:23:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 1040,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "648:7:6",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1045,
            "name": "_entries",
            "nodeType": "VariableDeclaration",
            "scope": 2505,
            "src": "678:35:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$1074_storage_$",
              "typeString": "mapping(bytes32 => struct HashRegistrar.Entry)"
            },
            "typeName": {
              "id": 1044,
              "keyType": {
                "id": 1042,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "687:7:6",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "678:26:6",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$1074_storage_$",
                "typeString": "mapping(bytes32 => struct HashRegistrar.Entry)"
              },
              "valueType": {
                "contractScope": null,
                "id": 1043,
                "name": "Entry",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 1074,
                "src": "698:5:6",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                  "typeString": "struct HashRegistrar.Entry"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 1051,
            "name": "sealedBids",
            "nodeType": "VariableDeclaration",
            "scope": 2505,
            "src": "719:64:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$47_$_$",
              "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
            },
            "typeName": {
              "id": 1050,
              "keyType": {
                "id": 1046,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "728:7:6",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "719:46:6",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$47_$_$",
                "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
              },
              "valueType": {
                "id": 1049,
                "keyType": {
                  "id": 1047,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "748:7:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "nodeType": "Mapping",
                "src": "739:25:6",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$47_$",
                  "typeString": "mapping(bytes32 => contract Deed)"
                },
                "valueType": {
                  "contractScope": null,
                  "id": 1048,
                  "name": "Deed",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 47,
                  "src": "759:4:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Deed_$47",
                    "typeString": "contract Deed"
                  }
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1054,
            "name": "totalAuctionLength",
            "nodeType": "VariableDeclaration",
            "scope": 2505,
            "src": "790:43:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 1052,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "790:6:6",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "35",
              "id": 1053,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "827:6:6",
              "subdenomination": "days",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_432000_by_1",
                "typeString": "int_const 432000"
              },
              "value": "5"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 1057,
            "name": "revealPeriod",
            "nodeType": "VariableDeclaration",
            "scope": 2505,
            "src": "839:39:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 1055,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "839:6:6",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "3438",
              "id": 1056,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "870:8:6",
              "subdenomination": "hours",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_172800_by_1",
                "typeString": "int_const 172800"
              },
              "value": "48"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 1060,
            "name": "launchLength",
            "nodeType": "VariableDeclaration",
            "scope": 2505,
            "src": "884:45:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 1058,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "884:6:6",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "38",
              "id": 1059,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "922:7:6",
              "subdenomination": "weeks",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_4838400_by_1",
                "typeString": "int_const 4838400"
              },
              "value": "8"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1063,
            "name": "minPrice",
            "nodeType": "VariableDeclaration",
            "scope": 2505,
            "src": "936:35:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1061,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "936:4:6",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "302e3031",
              "id": 1062,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "961:10:6",
              "subdenomination": "ether",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_10000000000000000_by_1",
                "typeString": "int_const 10000000000000000"
              },
              "value": "0.01"
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 1065,
            "name": "registryStarted",
            "nodeType": "VariableDeclaration",
            "scope": 2505,
            "src": "977:27:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1064,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "977:4:6",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "canonicalName": "HashRegistrar.Entry",
            "id": 1074,
            "members": [
              {
                "constant": false,
                "id": 1067,
                "name": "deed",
                "nodeType": "VariableDeclaration",
                "scope": 1074,
                "src": "1034:9:6",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_Deed_$47",
                  "typeString": "contract Deed"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 1066,
                  "name": "Deed",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 47,
                  "src": "1034:4:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Deed_$47",
                    "typeString": "contract Deed"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1069,
                "name": "registrationDate",
                "nodeType": "VariableDeclaration",
                "scope": 1074,
                "src": "1053:21:6",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1068,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1053:4:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1071,
                "name": "value",
                "nodeType": "VariableDeclaration",
                "scope": 1074,
                "src": "1084:10:6",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1070,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1084:4:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1073,
                "name": "highestBid",
                "nodeType": "VariableDeclaration",
                "scope": 1074,
                "src": "1104:15:6",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1072,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1104:4:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Entry",
            "nodeType": "StructDefinition",
            "scope": 2505,
            "src": "1011:115:6",
            "visibility": "public"
          },
          {
            "body": {
              "id": 1089,
              "nodeType": "Block",
              "src": "1177:59:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Mode_$2572",
                          "typeString": "enum Registrar.Mode"
                        },
                        "id": 1085,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1082,
                              "name": "_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1076,
                              "src": "1201:5:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 1081,
                            "name": "state",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2030,
                            "src": "1195:5:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$2572_$",
                              "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                            }
                          },
                          "id": 1083,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1195:12:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$2572",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 1084,
                          "name": "_state",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1078,
                          "src": "1211:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$2572",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "src": "1195:22:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1080,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3035,
                        3036
                      ],
                      "referencedDeclaration": 3035,
                      "src": "1187:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1086,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1187:31:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1087,
                  "nodeType": "ExpressionStatement",
                  "src": "1187:31:6"
                },
                {
                  "id": 1088,
                  "nodeType": "PlaceholderStatement",
                  "src": "1228:1:6"
                }
              ]
            },
            "documentation": null,
            "id": 1090,
            "name": "inState",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1079,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1076,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1090,
                  "src": "1149:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1075,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1149:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1078,
                  "name": "_state",
                  "nodeType": "VariableDeclaration",
                  "scope": 1090,
                  "src": "1164:11:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mode_$2572",
                    "typeString": "enum Registrar.Mode"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1077,
                    "name": "Mode",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2572,
                    "src": "1164:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$2572",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1148:28:6"
            },
            "src": "1132:104:6",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1114,
              "nodeType": "Block",
              "src": "1276:109:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1110,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_enum$_Mode_$2572",
                            "typeString": "enum Registrar.Mode"
                          },
                          "id": 1100,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1096,
                                "name": "_hash",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1092,
                                "src": "1300:5:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 1095,
                              "name": "state",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2030,
                              "src": "1294:5:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$2572_$",
                                "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                              }
                            },
                            "id": 1097,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1294:12:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Mode_$2572",
                              "typeString": "enum Registrar.Mode"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1098,
                              "name": "Mode",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2572,
                              "src": "1310:4:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Mode_$2572_$",
                                "typeString": "type(enum Registrar.Mode)"
                              }
                            },
                            "id": 1099,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Owned",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1310:10:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Mode_$2572",
                              "typeString": "enum Registrar.Mode"
                            }
                          },
                          "src": "1294:26:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 1109,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1101,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3032,
                              "src": "1324:3:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 1102,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1324:10:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 1103,
                                    "name": "_entries",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1045,
                                    "src": "1338:8:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$1074_storage_$",
                                      "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                                    }
                                  },
                                  "id": 1105,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 1104,
                                    "name": "_hash",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1092,
                                    "src": "1347:5:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "1338:15:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Entry_$1074_storage",
                                    "typeString": "struct HashRegistrar.Entry storage ref"
                                  }
                                },
                                "id": 1106,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "deed",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1067,
                                "src": "1338:20:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$47",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 1107,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "owner",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 31,
                              "src": "1338:26:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                                "typeString": "function () view external returns (address)"
                              }
                            },
                            "id": 1108,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1338:28:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "1324:42:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1294:72:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1094,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3035,
                        3036
                      ],
                      "referencedDeclaration": 3035,
                      "src": "1286:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1111,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1286:81:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1112,
                  "nodeType": "ExpressionStatement",
                  "src": "1286:81:6"
                },
                {
                  "id": 1113,
                  "nodeType": "PlaceholderStatement",
                  "src": "1377:1:6"
                }
              ]
            },
            "documentation": null,
            "id": 1115,
            "name": "onlyOwner",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1093,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1092,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1115,
                  "src": "1261:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1091,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1261:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1260:15:6"
            },
            "src": "1242:143:6",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1144,
              "nodeType": "Block",
              "src": "1415:146:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1140,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 1131,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1120,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 1118,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3034,
                              "src": "1433:3:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 1119,
                              "name": "registryStarted",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1065,
                              "src": "1440:15:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1433:22:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1130,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 1121,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3034,
                              "src": "1459:3:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 1129,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 1122,
                                "name": "registryStarted",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1065,
                                "src": "1466:15:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "+",
                              "rightExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_rational_126144000_by_1",
                                  "typeString": "int_const 126144000"
                                },
                                "id": 1128,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_rational_1460_by_1",
                                        "typeString": "int_const 1460"
                                      },
                                      "id": 1125,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "333635",
                                        "id": 1123,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1485:3:6",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_365_by_1",
                                          "typeString": "int_const 365"
                                        },
                                        "value": "365"
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "*",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "34",
                                        "id": 1124,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1491:1:6",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_4_by_1",
                                          "typeString": "int_const 4"
                                        },
                                        "value": "4"
                                      },
                                      "src": "1485:7:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1460_by_1",
                                        "typeString": "int_const 1460"
                                      }
                                    }
                                  ],
                                  "id": 1126,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "1484:9:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1460_by_1",
                                    "typeString": "int_const 1460"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 1127,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "1496:6:6",
                                  "subdenomination": "days",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_86400_by_1",
                                    "typeString": "int_const 86400"
                                  },
                                  "value": "1"
                                },
                                "src": "1484:18:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_126144000_by_1",
                                  "typeString": "int_const 126144000"
                                }
                              },
                              "src": "1466:36:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1459:43:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "1433:69:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 1139,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1134,
                                "name": "rootNode",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1041,
                                "src": "1516:8:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1132,
                                "name": "ens",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1039,
                                "src": "1506:3:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ENS_$436",
                                  "typeString": "contract ENS"
                                }
                              },
                              "id": 1133,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "owner",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 405,
                              "src": "1506:9:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                                "typeString": "function (bytes32) view external returns (address)"
                              }
                            },
                            "id": 1135,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1506:19:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1137,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3060,
                                "src": "1537:4:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_HashRegistrar_$2505",
                                  "typeString": "contract HashRegistrar"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_HashRegistrar_$2505",
                                  "typeString": "contract HashRegistrar"
                                }
                              ],
                              "id": 1136,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "1529:7:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 1138,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1529:13:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "1506:36:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1433:109:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1117,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3035,
                        3036
                      ],
                      "referencedDeclaration": 3035,
                      "src": "1425:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1141,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1425:118:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1142,
                  "nodeType": "ExpressionStatement",
                  "src": "1425:118:6"
                },
                {
                  "id": 1143,
                  "nodeType": "PlaceholderStatement",
                  "src": "1553:1:6"
                }
              ]
            },
            "documentation": null,
            "id": 1145,
            "name": "registryOpen",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1116,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1412:2:6"
            },
            "src": "1391:170:6",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1171,
              "nodeType": "Block",
              "src": "1844:118:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1156,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1154,
                      "name": "ens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1039,
                      "src": "1854:3:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ENS_$436",
                        "typeString": "contract ENS"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1155,
                      "name": "_ens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1147,
                      "src": "1860:4:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ENS_$436",
                        "typeString": "contract ENS"
                      }
                    },
                    "src": "1854:10:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ENS_$436",
                      "typeString": "contract ENS"
                    }
                  },
                  "id": 1157,
                  "nodeType": "ExpressionStatement",
                  "src": "1854:10:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1160,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1158,
                      "name": "rootNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1041,
                      "src": "1874:8:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1159,
                      "name": "_rootNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1149,
                      "src": "1885:9:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "1874:20:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 1161,
                  "nodeType": "ExpressionStatement",
                  "src": "1874:20:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1169,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1162,
                      "name": "registryStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1065,
                      "src": "1904:15:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1165,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1163,
                          "name": "_startDate",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1151,
                          "src": "1922:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1164,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1935:1:6",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "1922:14:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseExpression": {
                        "argumentTypes": null,
                        "id": 1167,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3034,
                        "src": "1952:3:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 1168,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "Conditional",
                      "src": "1922:33:6",
                      "trueExpression": {
                        "argumentTypes": null,
                        "id": 1166,
                        "name": "_startDate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1151,
                        "src": "1939:10:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1904:51:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1170,
                  "nodeType": "ExpressionStatement",
                  "src": "1904:51:6"
                }
              ]
            },
            "documentation": "@dev Constructs a new Registrar, with the provided address as the owner of the root node.\n     * @param _ens The address of the ENS\n@param _rootNode The hash of the rootnode.",
            "id": 1172,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1152,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1147,
                  "name": "_ens",
                  "nodeType": "VariableDeclaration",
                  "scope": 1172,
                  "src": "1791:8:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ENS_$436",
                    "typeString": "contract ENS"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1146,
                    "name": "ENS",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 436,
                    "src": "1791:3:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ENS_$436",
                      "typeString": "contract ENS"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1149,
                  "name": "_rootNode",
                  "nodeType": "VariableDeclaration",
                  "scope": 1172,
                  "src": "1801:17:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1148,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1801:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1151,
                  "name": "_startDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 1172,
                  "src": "1820:15:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1150,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1820:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1790:46:6"
            },
            "returnParameters": {
              "id": 1153,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1844:0:6"
            },
            "scope": 2505,
            "src": "1779:183:6",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1181,
              "nodeType": "Block",
              "src": "2140:37:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1178,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1174,
                        "src": "2164:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1177,
                      "name": "_startAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2206,
                      "src": "2150:13:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 1179,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2150:20:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1180,
                  "nodeType": "ExpressionStatement",
                  "src": "2150:20:6"
                }
              ]
            },
            "documentation": "@dev Start an auction for an available hash\n     * @param _hash The hash to start an auction on",
            "id": 1182,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "startAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1175,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1174,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1182,
                  "src": "2116:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1173,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2116:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2115:15:6"
            },
            "returnParameters": {
              "id": 1176,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2140:0:6"
            },
            "scope": 2505,
            "src": "2094:83:6",
            "stateMutability": "nonpayable",
            "superFunction": 2634,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1192,
              "nodeType": "Block",
              "src": "2831:40:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1189,
                        "name": "_hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1185,
                        "src": "2856:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      ],
                      "id": 1188,
                      "name": "_startAuctions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2232,
                      "src": "2841:14:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (bytes32[] memory)"
                      }
                    },
                    "id": 1190,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2841:23:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1191,
                  "nodeType": "ExpressionStatement",
                  "src": "2841:23:6"
                }
              ]
            },
            "documentation": "@dev Start multiple auctions for better anonymity\n     * Anyone can start an auction by sending an array of hashes that they want to bid for.\nArrays are sent so that someone can open up an auction for X dummy hashes when they\nare only really interested in bidding for one. This will increase the cost for an\nattacker to simply bid blindly on all new auctions. Dummy auctions that are\nopen but not bid on are closed after a week.\n     * @param _hashes An array of hashes, at least one of which you presumably want to bid on",
            "id": 1193,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "startAuctions",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1186,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1185,
                  "name": "_hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 1193,
                  "src": "2794:26:6",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1183,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "2794:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 1184,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2794:9:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2793:28:6"
            },
            "returnParameters": {
              "id": 1187,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2831:0:6"
            },
            "scope": 2505,
            "src": "2771:100:6",
            "stateMutability": "nonpayable",
            "superFunction": 2640,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1202,
              "nodeType": "Block",
              "src": "3779:35:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1199,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1195,
                        "src": "3797:9:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1198,
                      "name": "_newBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2290,
                      "src": "3789:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 1200,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3789:18:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1201,
                  "nodeType": "ExpressionStatement",
                  "src": "3789:18:6"
                }
              ]
            },
            "documentation": "@dev Submit a new sealed bid on a desired hash in a blind auction\n     * Bids are sent by sending a message to the main contract with a hash and an amount. The hash\ncontains information about the bid, including the bidded hash, the bid amount, and a random\nsalt. Bids are not tied to any one auction until they are revealed. The value of the bid\nitself can be masqueraded by sending more than the value of your actual bid. This is\nfollowed by a 48h reveal period. Bids revealed after this period will be burned and the ether unrecoverable.\nSince this is an auction, it is expected that most public hashes, like known domains and common dictionary\nwords, will have multiple bidders pushing the price up.\n     * @param sealedBid A sealedBid, created by the shaBid function",
            "id": 1203,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "newBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1196,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1195,
                  "name": "sealedBid",
                  "nodeType": "VariableDeclaration",
                  "scope": 1203,
                  "src": "3743:17:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1194,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3743:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3742:19:6"
            },
            "returnParameters": {
              "id": 1197,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3779:0:6"
            },
            "scope": 2505,
            "src": "3727:87:6",
            "stateMutability": "payable",
            "superFunction": 2645,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1219,
              "nodeType": "Block",
              "src": "4248:67:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1212,
                        "name": "hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1206,
                        "src": "4273:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      ],
                      "id": 1211,
                      "name": "_startAuctions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2232,
                      "src": "4258:14:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (bytes32[] memory)"
                      }
                    },
                    "id": 1213,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4258:22:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1214,
                  "nodeType": "ExpressionStatement",
                  "src": "4258:22:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1216,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1208,
                        "src": "4298:9:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1215,
                      "name": "_newBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2290,
                      "src": "4290:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 1217,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4290:18:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1218,
                  "nodeType": "ExpressionStatement",
                  "src": "4290:18:6"
                }
              ]
            },
            "documentation": "@dev Start a set of auctions and bid on one of them\n     * This method functions identically to calling `startAuctions` followed by `newBid`,\nbut all in one transaction.\n     * @param hashes A list of hashes to start auctions on.\n@param sealedBid A sealed bid for one of the auctions.",
            "id": 1220,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "startAuctionsAndBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1209,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1206,
                  "name": "hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 1220,
                  "src": "4185:25:6",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1204,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "4185:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 1205,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "4185:9:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1208,
                  "name": "sealedBid",
                  "nodeType": "VariableDeclaration",
                  "scope": 1220,
                  "src": "4212:17:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1207,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4212:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4184:46:6"
            },
            "returnParameters": {
              "id": 1210,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4248:0:6"
            },
            "scope": 2505,
            "src": "4156:159:6",
            "stateMutability": "payable",
            "superFunction": 2653,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1451,
              "nodeType": "Block",
              "src": "4618:1904:6",
              "statements": [
                {
                  "assignments": [
                    1230
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1230,
                      "name": "seal",
                      "nodeType": "VariableDeclaration",
                      "scope": 1451,
                      "src": "4628:12:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1229,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4628:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1238,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1232,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1222,
                        "src": "4650:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1233,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3032,
                          "src": "4657:3:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1234,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4657:10:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1235,
                        "name": "_value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1224,
                        "src": "4669:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1236,
                        "name": "_salt",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1226,
                        "src": "4677:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1231,
                      "name": "shaBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2093,
                      "src": "4643:6:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$",
                        "typeString": "function (bytes32,address,uint256,bytes32) pure returns (bytes32)"
                      }
                    },
                    "id": 1237,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4643:40:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4628:55:6"
                },
                {
                  "assignments": [
                    1240
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1240,
                      "name": "bid",
                      "nodeType": "VariableDeclaration",
                      "scope": 1451,
                      "src": "4693:8:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1239,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 47,
                        "src": "4693:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$47",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1247,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1241,
                        "name": "sealedBids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1051,
                        "src": "4704:10:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$47_$_$",
                          "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                        }
                      },
                      "id": 1244,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1242,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3032,
                          "src": "4715:3:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1243,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4715:10:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4704:22:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$47_$",
                        "typeString": "mapping(bytes32 => contract Deed)"
                      }
                    },
                    "id": 1246,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1245,
                      "name": "seal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1230,
                      "src": "4727:4:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4704:28:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$47",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4693:39:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 1255,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1250,
                              "name": "bid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1240,
                              "src": "4758:3:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$47",
                                "typeString": "contract Deed"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_Deed_$47",
                                "typeString": "contract Deed"
                              }
                            ],
                            "id": 1249,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "4750:7:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 1251,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4750:12:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 1253,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4774:3:6",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 1252,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "4766:7:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 1254,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4766:12:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "src": "4750:28:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1248,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3035,
                        3036
                      ],
                      "referencedDeclaration": 3035,
                      "src": "4742:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1256,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4742:37:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1257,
                  "nodeType": "ExpressionStatement",
                  "src": "4742:37:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1269,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1258,
                          "name": "sealedBids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1051,
                          "src": "4790:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$47_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                          }
                        },
                        "id": 1262,
                        "indexExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1259,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3032,
                            "src": "4801:3:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 1260,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4801:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4790:22:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$47_$",
                          "typeString": "mapping(bytes32 => contract Deed)"
                        }
                      },
                      "id": 1263,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1261,
                        "name": "seal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1230,
                        "src": "4813:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4790:28:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 1266,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4834:3:6",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 1265,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "4826:7:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 1267,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4826:12:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        ],
                        "id": 1264,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 47,
                        "src": "4821:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$47_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 1268,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4821:18:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "4790:49:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$47",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 1270,
                  "nodeType": "ExpressionStatement",
                  "src": "4790:49:6"
                },
                {
                  "assignments": [
                    1272
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1272,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1451,
                      "src": "4849:15:6",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1271,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1074,
                        "src": "4849:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1276,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1273,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1045,
                      "src": "4867:8:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$1074_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1275,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1274,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1222,
                      "src": "4876:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4867:15:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$1074_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4849:33:6"
                },
                {
                  "assignments": [
                    1278
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1278,
                      "name": "value",
                      "nodeType": "VariableDeclaration",
                      "scope": 1451,
                      "src": "4892:10:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1277,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4892:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1285,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1280,
                        "name": "_value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1224,
                        "src": "4909:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1281,
                            "name": "bid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1240,
                            "src": "4917:3:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$47",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 1282,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 41,
                          "src": "4917:9:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                            "typeString": "function () view external returns (uint256)"
                          }
                        },
                        "id": 1283,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4917:11:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1279,
                      "name": "min",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2417,
                      "src": "4905:3:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 1284,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4905:24:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4892:37:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1289,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1278,
                        "src": "4954:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 1290,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4961:4:6",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1286,
                        "name": "bid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1240,
                        "src": "4939:3:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$47",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 1288,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 18,
                      "src": "4939:14:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (uint256,bool) external"
                      }
                    },
                    "id": 1291,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4939:27:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1292,
                  "nodeType": "ExpressionStatement",
                  "src": "4939:27:6"
                },
                {
                  "assignments": [
                    1294
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1294,
                      "name": "auctionState",
                      "nodeType": "VariableDeclaration",
                      "scope": 1451,
                      "src": "4977:17:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$2572",
                        "typeString": "enum Registrar.Mode"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1293,
                        "name": "Mode",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2572,
                        "src": "4977:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$2572",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1298,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1296,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1222,
                        "src": "5003:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1295,
                      "name": "state",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2030,
                      "src": "4997:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$2572_$",
                        "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                      }
                    },
                    "id": 1297,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4997:12:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$2572",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4977:32:6"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$2572",
                      "typeString": "enum Registrar.Mode"
                    },
                    "id": 1302,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1299,
                      "name": "auctionState",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1294,
                      "src": "5023:12:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$2572",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1300,
                        "name": "Mode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2572,
                        "src": "5039:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Mode_$2572_$",
                          "typeString": "type(enum Registrar.Mode)"
                        }
                      },
                      "id": 1301,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Owned",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "5039:10:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$2572",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "src": "5023:26:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_Mode_$2572",
                        "typeString": "enum Registrar.Mode"
                      },
                      "id": 1321,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 1318,
                        "name": "auctionState",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1294,
                        "src": "5226:12:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$2572",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1319,
                          "name": "Mode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2572,
                          "src": "5242:4:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Mode_$2572_$",
                            "typeString": "type(enum Registrar.Mode)"
                          }
                        },
                        "id": 1320,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "Reveal",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "5242:11:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$2572",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "src": "5226:27:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1337,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1328,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1326,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1278,
                            "src": "5327:5:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 1327,
                            "name": "minPrice",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1063,
                            "src": "5335:8:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5327:16:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1336,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1329,
                                "name": "bid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1240,
                                "src": "5347:3:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$47",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 1330,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "creationDate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 46,
                              "src": "5347:16:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                "typeString": "function () view external returns (uint256)"
                              }
                            },
                            "id": 1331,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5347:18:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1335,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1332,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1272,
                                "src": "5368:1:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 1333,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "registrationDate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1069,
                              "src": "5368:18:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 1334,
                              "name": "revealPeriod",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1057,
                              "src": "5389:12:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            },
                            "src": "5368:33:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5347:54:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "5327:74:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1356,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1353,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1278,
                            "src": "5568:5:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1354,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1272,
                              "src": "5576:1:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                "typeString": "struct HashRegistrar.Entry storage pointer"
                              }
                            },
                            "id": 1355,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "highestBid",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1073,
                            "src": "5576:12:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5568:20:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1409,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 1406,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1278,
                              "src": "6166:5:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1407,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1272,
                                "src": "6174:1:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 1408,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "value",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1071,
                              "src": "6174:7:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "6166:15:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 1445,
                            "nodeType": "Block",
                            "src": "6372:144:6",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "393935",
                                      "id": 1434,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6442:3:6",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      },
                                      "value": "995"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1431,
                                      "name": "bid",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1240,
                                      "src": "6428:3:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$47",
                                        "typeString": "contract Deed"
                                      }
                                    },
                                    "id": 1433,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "closeDeed",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 23,
                                    "src": "6428:13:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                      "typeString": "function (uint256) external"
                                    }
                                  },
                                  "id": 1435,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "6428:18:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 1436,
                                "nodeType": "ExpressionStatement",
                                "src": "6428:18:6"
                              },
                              {
                                "eventCall": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 1438,
                                      "name": "_hash",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1222,
                                      "src": "6477:5:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1439,
                                        "name": "msg",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3032,
                                        "src": "6484:3:6",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_message",
                                          "typeString": "msg"
                                        }
                                      },
                                      "id": 1440,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "sender",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "6484:10:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 1441,
                                      "name": "value",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1278,
                                      "src": "6496:5:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "34",
                                      "id": 1442,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6503:1:6",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_4_by_1",
                                        "typeString": "int_const 4"
                                      },
                                      "value": "4"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_rational_4_by_1",
                                        "typeString": "int_const 4"
                                      }
                                    ],
                                    "id": 1437,
                                    "name": "BidRevealed",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2596,
                                    "src": "6465:11:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                      "typeString": "function (bytes32,address,uint256,uint8)"
                                    }
                                  },
                                  "id": 1443,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "6465:40:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 1444,
                                "nodeType": "EmitStatement",
                                "src": "6460:45:6"
                              }
                            ]
                          },
                          "id": 1446,
                          "nodeType": "IfStatement",
                          "src": "6162:354:6",
                          "trueBody": {
                            "id": 1430,
                            "nodeType": "Block",
                            "src": "6183:183:6",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1414,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1410,
                                      "name": "h",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1272,
                                      "src": "6249:1:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                        "typeString": "struct HashRegistrar.Entry storage pointer"
                                      }
                                    },
                                    "id": 1412,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": true,
                                    "memberName": "value",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 1071,
                                    "src": "6249:7:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "id": 1413,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1278,
                                    "src": "6259:5:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "6249:15:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 1415,
                                "nodeType": "ExpressionStatement",
                                "src": "6249:15:6"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "393935",
                                      "id": 1419,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6292:3:6",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      },
                                      "value": "995"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1416,
                                      "name": "bid",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1240,
                                      "src": "6278:3:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$47",
                                        "typeString": "contract Deed"
                                      }
                                    },
                                    "id": 1418,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "closeDeed",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 23,
                                    "src": "6278:13:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                      "typeString": "function (uint256) external"
                                    }
                                  },
                                  "id": 1420,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "6278:18:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 1421,
                                "nodeType": "ExpressionStatement",
                                "src": "6278:18:6"
                              },
                              {
                                "eventCall": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 1423,
                                      "name": "_hash",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1222,
                                      "src": "6327:5:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1424,
                                        "name": "msg",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3032,
                                        "src": "6334:3:6",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_message",
                                          "typeString": "msg"
                                        }
                                      },
                                      "id": 1425,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "sender",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "6334:10:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 1426,
                                      "name": "value",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1278,
                                      "src": "6346:5:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "33",
                                      "id": 1427,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6353:1:6",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_3_by_1",
                                        "typeString": "int_const 3"
                                      },
                                      "value": "3"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_rational_3_by_1",
                                        "typeString": "int_const 3"
                                      }
                                    ],
                                    "id": 1422,
                                    "name": "BidRevealed",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2596,
                                    "src": "6315:11:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                      "typeString": "function (bytes32,address,uint256,uint8)"
                                    }
                                  },
                                  "id": 1428,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "6315:40:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 1429,
                                "nodeType": "EmitStatement",
                                "src": "6310:45:6"
                              }
                            ]
                          }
                        },
                        "id": 1447,
                        "nodeType": "IfStatement",
                        "src": "5564:952:6",
                        "trueBody": {
                          "id": 1405,
                          "nodeType": "Block",
                          "src": "5590:566:6",
                          "statements": [
                            {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                "id": 1364,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1358,
                                        "name": "h",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1272,
                                        "src": "5692:1:6",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                          "typeString": "struct HashRegistrar.Entry storage pointer"
                                        }
                                      },
                                      "id": 1359,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "deed",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 1067,
                                      "src": "5692:6:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$47",
                                        "typeString": "contract Deed"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_contract$_Deed_$47",
                                        "typeString": "contract Deed"
                                      }
                                    ],
                                    "id": 1357,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "5684:7:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_address_$",
                                      "typeString": "type(address)"
                                    },
                                    "typeName": "address"
                                  },
                                  "id": 1360,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "5684:15:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "!=",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "307830",
                                      "id": 1362,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "5711:3:6",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      },
                                      "value": "0x0"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      }
                                    ],
                                    "id": 1361,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "5703:7:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_address_$",
                                      "typeString": "type(address)"
                                    },
                                    "typeName": "address"
                                  },
                                  "id": 1363,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "5703:12:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  }
                                },
                                "src": "5684:31:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 1377,
                              "nodeType": "IfStatement",
                              "src": "5680:145:6",
                              "trueBody": {
                                "id": 1376,
                                "nodeType": "Block",
                                "src": "5717:108:6",
                                "statements": [
                                  {
                                    "assignments": [
                                      1366
                                    ],
                                    "declarations": [
                                      {
                                        "constant": false,
                                        "id": 1366,
                                        "name": "previousWinner",
                                        "nodeType": "VariableDeclaration",
                                        "scope": 1376,
                                        "src": "5735:19:6",
                                        "stateVariable": false,
                                        "storageLocation": "default",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_Deed_$47",
                                          "typeString": "contract Deed"
                                        },
                                        "typeName": {
                                          "contractScope": null,
                                          "id": 1365,
                                          "name": "Deed",
                                          "nodeType": "UserDefinedTypeName",
                                          "referencedDeclaration": 47,
                                          "src": "5735:4:6",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_Deed_$47",
                                            "typeString": "contract Deed"
                                          }
                                        },
                                        "value": null,
                                        "visibility": "internal"
                                      }
                                    ],
                                    "id": 1369,
                                    "initialValue": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1367,
                                        "name": "h",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1272,
                                        "src": "5757:1:6",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                          "typeString": "struct HashRegistrar.Entry storage pointer"
                                        }
                                      },
                                      "id": 1368,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "deed",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 1067,
                                      "src": "5757:6:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$47",
                                        "typeString": "contract Deed"
                                      }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "5735:28:6"
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "hexValue": "393935",
                                          "id": 1373,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "5806:3:6",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_995_by_1",
                                            "typeString": "int_const 995"
                                          },
                                          "value": "995"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_rational_995_by_1",
                                            "typeString": "int_const 995"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 1370,
                                          "name": "previousWinner",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1366,
                                          "src": "5781:14:6",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_Deed_$47",
                                            "typeString": "contract Deed"
                                          }
                                        },
                                        "id": 1372,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "closeDeed",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 23,
                                        "src": "5781:24:6",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                          "typeString": "function (uint256) external"
                                        }
                                      },
                                      "id": 1374,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "5781:29:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_tuple$__$",
                                        "typeString": "tuple()"
                                      }
                                    },
                                    "id": 1375,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5781:29:6"
                                  }
                                ]
                              }
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 1383,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1378,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1272,
                                    "src": "5962:1:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                      "typeString": "struct HashRegistrar.Entry storage pointer"
                                    }
                                  },
                                  "id": 1380,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "value",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1071,
                                  "src": "5962:7:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1381,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1272,
                                    "src": "5972:1:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                      "typeString": "struct HashRegistrar.Entry storage pointer"
                                    }
                                  },
                                  "id": 1382,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "highestBid",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1073,
                                  "src": "5972:12:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "5962:22:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 1384,
                              "nodeType": "ExpressionStatement",
                              "src": "5962:22:6"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 1389,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1385,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1272,
                                    "src": "6040:1:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                      "typeString": "struct HashRegistrar.Entry storage pointer"
                                    }
                                  },
                                  "id": 1387,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "highestBid",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1073,
                                  "src": "6040:12:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 1388,
                                  "name": "value",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1278,
                                  "src": "6055:5:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "6040:20:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 1390,
                              "nodeType": "ExpressionStatement",
                              "src": "6040:20:6"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 1395,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1391,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1272,
                                    "src": "6074:1:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                      "typeString": "struct HashRegistrar.Entry storage pointer"
                                    }
                                  },
                                  "id": 1393,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "deed",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1067,
                                  "src": "6074:6:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Deed_$47",
                                    "typeString": "contract Deed"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 1394,
                                  "name": "bid",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1240,
                                  "src": "6083:3:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Deed_$47",
                                    "typeString": "contract Deed"
                                  }
                                },
                                "src": "6074:12:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$47",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 1396,
                              "nodeType": "ExpressionStatement",
                              "src": "6074:12:6"
                            },
                            {
                              "eventCall": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 1398,
                                    "name": "_hash",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1222,
                                    "src": "6117:5:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1399,
                                      "name": "msg",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3032,
                                      "src": "6124:3:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_message",
                                        "typeString": "msg"
                                      }
                                    },
                                    "id": 1400,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "sender",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "6124:10:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address_payable",
                                      "typeString": "address payable"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 1401,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1278,
                                    "src": "6136:5:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "32",
                                    "id": 1402,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "6143:1:6",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    },
                                    "value": "2"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_address_payable",
                                      "typeString": "address payable"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    }
                                  ],
                                  "id": 1397,
                                  "name": "BidRevealed",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2596,
                                  "src": "6105:11:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                    "typeString": "function (bytes32,address,uint256,uint8)"
                                  }
                                },
                                "id": 1403,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6105:40:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 1404,
                              "nodeType": "EmitStatement",
                              "src": "6100:45:6"
                            }
                          ]
                        }
                      },
                      "id": 1448,
                      "nodeType": "IfStatement",
                      "src": "5323:1193:6",
                      "trueBody": {
                        "id": 1352,
                        "nodeType": "Block",
                        "src": "5403:155:6",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "393935",
                                  "id": 1341,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5484:3:6",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_995_by_1",
                                    "typeString": "int_const 995"
                                  },
                                  "value": "995"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_995_by_1",
                                    "typeString": "int_const 995"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1338,
                                  "name": "bid",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1240,
                                  "src": "5470:3:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Deed_$47",
                                    "typeString": "contract Deed"
                                  }
                                },
                                "id": 1340,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "closeDeed",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 23,
                                "src": "5470:13:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                  "typeString": "function (uint256) external"
                                }
                              },
                              "id": 1342,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5470:18:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 1343,
                            "nodeType": "ExpressionStatement",
                            "src": "5470:18:6"
                          },
                          {
                            "eventCall": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 1345,
                                  "name": "_hash",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1222,
                                  "src": "5519:5:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1346,
                                    "name": "msg",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3032,
                                    "src": "5526:3:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_message",
                                      "typeString": "msg"
                                    }
                                  },
                                  "id": 1347,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "sender",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "5526:10:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 1348,
                                  "name": "value",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1278,
                                  "src": "5538:5:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 1349,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5545:1:6",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 1344,
                                "name": "BidRevealed",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2596,
                                "src": "5507:11:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                  "typeString": "function (bytes32,address,uint256,uint8)"
                                }
                              },
                              "id": 1350,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5507:40:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 1351,
                            "nodeType": "EmitStatement",
                            "src": "5502:45:6"
                          }
                        ]
                      }
                    },
                    "id": 1449,
                    "nodeType": "IfStatement",
                    "src": "5222:1294:6",
                    "trueBody": {
                      "id": 1325,
                      "nodeType": "Block",
                      "src": "5255:62:6",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 1322,
                              "name": "revert",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [
                                3037,
                                3038
                              ],
                              "referencedDeclaration": 3037,
                              "src": "5298:6:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_revert_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 1323,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5298:8:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 1324,
                          "nodeType": "ExpressionStatement",
                          "src": "5298:8:6"
                        }
                      ]
                    }
                  },
                  "id": 1450,
                  "nodeType": "IfStatement",
                  "src": "5019:1497:6",
                  "trueBody": {
                    "id": 1317,
                    "nodeType": "Block",
                    "src": "5051:165:6",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "35",
                              "id": 1306,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5144:1:6",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_5_by_1",
                                "typeString": "int_const 5"
                              },
                              "value": "5"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_5_by_1",
                                "typeString": "int_const 5"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 1303,
                              "name": "bid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1240,
                              "src": "5130:3:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$47",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 1305,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "closeDeed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 23,
                            "src": "5130:13:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) external"
                            }
                          },
                          "id": 1307,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5130:16:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1308,
                        "nodeType": "ExpressionStatement",
                        "src": "5130:16:6"
                      },
                      {
                        "eventCall": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1310,
                              "name": "_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1222,
                              "src": "5177:5:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1311,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3032,
                                "src": "5184:3:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 1312,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "5184:10:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1313,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1278,
                              "src": "5196:5:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 1314,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5203:1:6",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              }
                            ],
                            "id": 1309,
                            "name": "BidRevealed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2596,
                            "src": "5165:11:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                              "typeString": "function (bytes32,address,uint256,uint8)"
                            }
                          },
                          "id": 1315,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5165:40:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1316,
                        "nodeType": "EmitStatement",
                        "src": "5160:45:6"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Submit the properties of a bid to reveal them\n     * @param _hash The node in the sealedBid\n@param _value The bid amount in the sealedBid\n@param _salt The sale in the sealedBid",
            "id": 1452,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "unsealBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1227,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1222,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1452,
                  "src": "4566:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1221,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4566:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1224,
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1452,
                  "src": "4581:11:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1223,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4581:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1226,
                  "name": "_salt",
                  "nodeType": "VariableDeclaration",
                  "scope": 1452,
                  "src": "4594:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1225,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4594:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4565:43:6"
            },
            "returnParameters": {
              "id": 1228,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4618:0:6"
            },
            "scope": 2505,
            "src": "4547:1975:6",
            "stateMutability": "nonpayable",
            "superFunction": 2662,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1517,
              "nodeType": "Block",
              "src": "6695:786:6",
              "statements": [
                {
                  "assignments": [
                    1460
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1460,
                      "name": "bid",
                      "nodeType": "VariableDeclaration",
                      "scope": 1517,
                      "src": "6705:8:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1459,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 47,
                        "src": "6705:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$47",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1466,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1461,
                        "name": "sealedBids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1051,
                        "src": "6716:10:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$47_$_$",
                          "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                        }
                      },
                      "id": 1463,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1462,
                        "name": "bidder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1454,
                        "src": "6727:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "6716:18:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$47_$",
                        "typeString": "mapping(bytes32 => contract Deed)"
                      }
                    },
                    "id": 1465,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1464,
                      "name": "seal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1456,
                      "src": "6735:4:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "6716:24:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$47",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6705:35:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1484,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 1474,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1469,
                                "name": "bid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1460,
                                "src": "7176:3:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$47",
                                  "typeString": "contract Deed"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Deed_$47",
                                  "typeString": "contract Deed"
                                }
                              ],
                              "id": 1468,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7168:7:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 1470,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7168:12:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "307830",
                                "id": 1472,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7192:3:6",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0x0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 1471,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7184:7:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 1473,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7184:12:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "7168:28:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1483,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1475,
                            "name": "now",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3034,
                            "src": "7200:3:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1482,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 1480,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1476,
                                    "name": "bid",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1460,
                                    "src": "7207:3:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_Deed_$47",
                                      "typeString": "contract Deed"
                                    }
                                  },
                                  "id": 1477,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "creationDate",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 46,
                                  "src": "7207:16:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                    "typeString": "function () view external returns (uint256)"
                                  }
                                },
                                "id": 1478,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "7207:18:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "+",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 1479,
                                "name": "totalAuctionLength",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1054,
                                "src": "7228:18:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "src": "7207:39:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "32",
                              "id": 1481,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7249:7:6",
                              "subdenomination": "weeks",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1209600_by_1",
                                "typeString": "int_const 1209600"
                              },
                              "value": "2"
                            },
                            "src": "7207:49:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "7200:56:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "7168:88:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1467,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3035,
                        3036
                      ],
                      "referencedDeclaration": 3035,
                      "src": "7160:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1485,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7160:97:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1486,
                  "nodeType": "ExpressionStatement",
                  "src": "7160:97:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1490,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3032,
                          "src": "7347:3:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1491,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "7347:10:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1487,
                        "name": "bid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1460,
                        "src": "7334:3:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$47",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 1489,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6,
                      "src": "7334:12:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_payable_$returns$__$",
                        "typeString": "function (address payable) external"
                      }
                    },
                    "id": 1492,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7334:24:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1493,
                  "nodeType": "ExpressionStatement",
                  "src": "7334:24:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "35",
                        "id": 1497,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7382:1:6",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        },
                        "value": "5"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1494,
                        "name": "bid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1460,
                        "src": "7368:3:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$47",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 1496,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "closeDeed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23,
                      "src": "7368:13:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 1498,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7368:16:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1499,
                  "nodeType": "ExpressionStatement",
                  "src": "7368:16:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1508,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1500,
                          "name": "sealedBids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1051,
                          "src": "7394:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$47_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                          }
                        },
                        "id": 1503,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1501,
                          "name": "bidder",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1454,
                          "src": "7405:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "7394:18:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$47_$",
                          "typeString": "mapping(bytes32 => contract Deed)"
                        }
                      },
                      "id": 1504,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1502,
                        "name": "seal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1456,
                        "src": "7413:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "7394:24:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1506,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7426:1:6",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 1505,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 47,
                        "src": "7421:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$47_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 1507,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7421:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "7394:34:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$47",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 1509,
                  "nodeType": "ExpressionStatement",
                  "src": "7394:34:6"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1511,
                        "name": "seal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1456,
                        "src": "7455:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1512,
                        "name": "bidder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1454,
                        "src": "7461:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 1513,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7469:1:6",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "35",
                        "id": 1514,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7472:1:6",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        },
                        "value": "5"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        }
                      ],
                      "id": 1510,
                      "name": "BidRevealed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2596,
                      "src": "7443:11:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                        "typeString": "function (bytes32,address,uint256,uint8)"
                      }
                    },
                    "id": 1515,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7443:31:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1516,
                  "nodeType": "EmitStatement",
                  "src": "7438:36:6"
                }
              ]
            },
            "documentation": "@dev Cancel a bid\n     * @param seal The value returned by the shaBid function",
            "id": 1518,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "cancelBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1457,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1454,
                  "name": "bidder",
                  "nodeType": "VariableDeclaration",
                  "scope": 1518,
                  "src": "6656:14:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1453,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6656:7:6",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1456,
                  "name": "seal",
                  "nodeType": "VariableDeclaration",
                  "scope": 1518,
                  "src": "6672:12:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1455,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6672:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6655:30:6"
            },
            "returnParameters": {
              "id": 1458,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6695:0:6"
            },
            "scope": 2505,
            "src": "6637:844:6",
            "stateMutability": "nonpayable",
            "superFunction": 2669,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1572,
              "nodeType": "Block",
              "src": "7707:356:6",
              "statements": [
                {
                  "assignments": [
                    1527
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1527,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1572,
                      "src": "7717:15:6",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1526,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1074,
                        "src": "7717:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1531,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1528,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1045,
                      "src": "7735:8:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$1074_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1530,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1529,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1520,
                      "src": "7744:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "7735:15:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$1074_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7717:33:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1540,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1532,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1527,
                        "src": "7849:1:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1534,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1071,
                      "src": "7849:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1536,
                            "name": "h",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1527,
                            "src": "7863:1:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                              "typeString": "struct HashRegistrar.Entry storage pointer"
                            }
                          },
                          "id": 1537,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1071,
                          "src": "7863:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 1538,
                          "name": "minPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1063,
                          "src": "7872:8:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 1535,
                        "name": "max",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2399,
                        "src": "7859:3:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 1539,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7859:22:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7849:32:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1541,
                  "nodeType": "ExpressionStatement",
                  "src": "7849:32:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1547,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1527,
                          "src": "7909:1:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1548,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1071,
                        "src": "7909:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 1549,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7918:4:6",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1542,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1527,
                          "src": "7891:1:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1545,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1067,
                        "src": "7891:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$47",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 1546,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 18,
                      "src": "7891:17:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (uint256,bool) external"
                      }
                    },
                    "id": 1550,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7891:32:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1551,
                  "nodeType": "ExpressionStatement",
                  "src": "7891:32:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1553,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1520,
                        "src": "7953:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1554,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1527,
                              "src": "7960:1:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                "typeString": "struct HashRegistrar.Entry storage pointer"
                              }
                            },
                            "id": 1555,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "deed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1067,
                            "src": "7960:6:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$47",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 1556,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 31,
                          "src": "7960:12:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        "id": 1557,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7960:14:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 1552,
                      "name": "trySetSubnodeOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2381,
                      "src": "7934:18:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 1558,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7934:41:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1559,
                  "nodeType": "ExpressionStatement",
                  "src": "7934:41:6"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1561,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1520,
                        "src": "8005:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1562,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1527,
                              "src": "8012:1:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                "typeString": "struct HashRegistrar.Entry storage pointer"
                              }
                            },
                            "id": 1563,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "deed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1067,
                            "src": "8012:6:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$47",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 1564,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 31,
                          "src": "8012:12:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        "id": 1565,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8012:14:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1566,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1527,
                          "src": "8028:1:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1567,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1071,
                        "src": "8028:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1568,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1527,
                          "src": "8037:1:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1569,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1069,
                        "src": "8037:18:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1560,
                      "name": "HashRegistered",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2606,
                      "src": "7990:14:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256,uint256)"
                      }
                    },
                    "id": 1570,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7990:66:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1571,
                  "nodeType": "EmitStatement",
                  "src": "7985:71:6"
                }
              ]
            },
            "documentation": "@dev Finalize an auction after the registration date has passed\n     * @param _hash The hash of the name the auction is for",
            "id": 1573,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 1523,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1520,
                    "src": "7700:5:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 1524,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1522,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1115,
                  "src": "7690:9:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7690:16:6"
              }
            ],
            "name": "finalizeAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1521,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1520,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1573,
                  "src": "7666:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1519,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7666:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7665:15:6"
            },
            "returnParameters": {
              "id": 1525,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7707:0:6"
            },
            "scope": 2505,
            "src": "7641:422:6",
            "stateMutability": "nonpayable",
            "superFunction": 2674,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1610,
              "nodeType": "Block",
              "src": "8357:174:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        "id": 1588,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1584,
                          "name": "newOwner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1577,
                          "src": "8375:8:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 1586,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8395:3:6",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 1585,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "8387:7:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 1587,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8387:12:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "src": "8375:24:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1583,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3035,
                        3036
                      ],
                      "referencedDeclaration": 3035,
                      "src": "8367:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1589,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8367:33:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1590,
                  "nodeType": "ExpressionStatement",
                  "src": "8367:33:6"
                },
                {
                  "assignments": [
                    1592
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1592,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1610,
                      "src": "8411:15:6",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1591,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1074,
                        "src": "8411:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1596,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1593,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1045,
                      "src": "8429:8:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$1074_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1595,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1594,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1575,
                      "src": "8438:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "8429:15:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$1074_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8411:33:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1602,
                        "name": "newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1577,
                        "src": "8470:8:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1597,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1592,
                          "src": "8454:1:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1600,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1067,
                        "src": "8454:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$47",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 1601,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6,
                      "src": "8454:15:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_payable_$returns$__$",
                        "typeString": "function (address payable) external"
                      }
                    },
                    "id": 1603,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8454:25:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1604,
                  "nodeType": "ExpressionStatement",
                  "src": "8454:25:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1606,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1575,
                        "src": "8508:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1607,
                        "name": "newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1577,
                        "src": "8515:8:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "id": 1605,
                      "name": "trySetSubnodeOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2381,
                      "src": "8489:18:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 1608,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8489:35:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1609,
                  "nodeType": "ExpressionStatement",
                  "src": "8489:35:6"
                }
              ]
            },
            "documentation": "@dev The owner of a domain may transfer it to someone else at any time.\n     * @param _hash The node to transfer\n@param newOwner The address to transfer ownership to",
            "id": 1611,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 1580,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1575,
                    "src": "8350:5:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 1581,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1579,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1115,
                  "src": "8340:9:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "8340:16:6"
              }
            ],
            "name": "transfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1578,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1575,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1611,
                  "src": "8290:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1574,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8290:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1577,
                  "name": "newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1611,
                  "src": "8305:24:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 1576,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8305:15:6",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8289:41:6"
            },
            "returnParameters": {
              "id": 1582,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8357:0:6"
            },
            "scope": 2505,
            "src": "8272:259:6",
            "stateMutability": "nonpayable",
            "superFunction": 2681,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1684,
              "nodeType": "Block",
              "src": "8797:382:6",
              "statements": [
                {
                  "assignments": [
                    1620
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1620,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1684,
                      "src": "8807:15:6",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1619,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1074,
                        "src": "8807:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1624,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1621,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1045,
                      "src": "8825:8:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$1074_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1623,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1622,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1613,
                      "src": "8834:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "8825:15:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$1074_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8807:33:6"
                },
                {
                  "assignments": [
                    1626
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1626,
                      "name": "deedContract",
                      "nodeType": "VariableDeclaration",
                      "scope": 1684,
                      "src": "8850:17:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1625,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 47,
                        "src": "8850:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$47",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1629,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 1627,
                      "name": "h",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1620,
                      "src": "8870:1:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry storage pointer"
                      }
                    },
                    "id": 1628,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "deed",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 1067,
                    "src": "8870:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$47",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8850:26:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1645,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1636,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1631,
                            "name": "now",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3034,
                            "src": "8895:3:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1635,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1632,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1620,
                                "src": "8902:1:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 1633,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "registrationDate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1069,
                              "src": "8902:18:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "333635",
                              "id": 1634,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8923:8:6",
                              "subdenomination": "days",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_31536000_by_1",
                                "typeString": "int_const 31536000"
                              },
                              "value": "365"
                            },
                            "src": "8902:29:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "8895:36:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 1644,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1639,
                                "name": "rootNode",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1041,
                                "src": "8945:8:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1637,
                                "name": "ens",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1039,
                                "src": "8935:3:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ENS_$436",
                                  "typeString": "contract ENS"
                                }
                              },
                              "id": 1638,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "owner",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 405,
                              "src": "8935:9:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                                "typeString": "function (bytes32) view external returns (address)"
                              }
                            },
                            "id": 1640,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8935:19:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1642,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3060,
                                "src": "8966:4:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_HashRegistrar_$2505",
                                  "typeString": "contract HashRegistrar"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_HashRegistrar_$2505",
                                  "typeString": "contract HashRegistrar"
                                }
                              ],
                              "id": 1641,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "8958:7:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 1643,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8958:13:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "8935:36:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "8895:76:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1630,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3035,
                        3036
                      ],
                      "referencedDeclaration": 3035,
                      "src": "8887:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1646,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8887:85:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1647,
                  "nodeType": "ExpressionStatement",
                  "src": "8887:85:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1652,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1648,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1620,
                        "src": "8983:1:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1650,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1071,
                      "src": "8983:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1651,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "8993:1:6",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "8983:11:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1653,
                  "nodeType": "ExpressionStatement",
                  "src": "8983:11:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1658,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1654,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1620,
                        "src": "9004:1:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1656,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1073,
                      "src": "9004:12:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1657,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9019:1:6",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "9004:16:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1659,
                  "nodeType": "ExpressionStatement",
                  "src": "9004:16:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1666,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1660,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1620,
                        "src": "9030:1:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1662,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "deed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1067,
                      "src": "9030:6:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1664,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9044:1:6",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 1663,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 47,
                        "src": "9039:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$47_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 1665,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9039:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "9030:16:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$47",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 1667,
                  "nodeType": "ExpressionStatement",
                  "src": "9030:16:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1669,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1613,
                        "src": "9077:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1668,
                      "name": "_tryEraseSingleNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2147,
                      "src": "9057:19:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 1670,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9057:26:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1671,
                  "nodeType": "ExpressionStatement",
                  "src": "9057:26:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "31303030",
                        "id": 1675,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9116:4:6",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1000_by_1",
                          "typeString": "int_const 1000"
                        },
                        "value": "1000"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1000_by_1",
                          "typeString": "int_const 1000"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1672,
                        "name": "deedContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1626,
                        "src": "9093:12:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$47",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 1674,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "closeDeed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23,
                      "src": "9093:22:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 1676,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9093:28:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1677,
                  "nodeType": "ExpressionStatement",
                  "src": "9093:28:6"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1679,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1613,
                        "src": "9149:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1680,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1620,
                          "src": "9156:1:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1681,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1071,
                        "src": "9156:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1678,
                      "name": "HashReleased",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2612,
                      "src": "9136:12:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 1682,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9136:28:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1683,
                  "nodeType": "EmitStatement",
                  "src": "9131:33:6"
                }
              ]
            },
            "documentation": "@dev After some time, or if we're no longer the registrar, the owner can release\n     the name and get their ether back.\n     * @param _hash The node to release",
            "id": 1685,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 1616,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1613,
                    "src": "8790:5:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 1617,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1615,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1115,
                  "src": "8780:9:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "8780:16:6"
              }
            ],
            "name": "releaseDeed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1614,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1613,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1685,
                  "src": "8756:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1612,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8756:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8755:15:6"
            },
            "returnParameters": {
              "id": 1618,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8797:0:6"
            },
            "scope": 2505,
            "src": "8735:444:6",
            "stateMutability": "nonpayable",
            "superFunction": 2686,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1805,
              "nodeType": "Block",
              "src": "9704:675:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1705,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1702,
                              "name": "unhashedName",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1687,
                              "src": "9729:12:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_calldata_ptr",
                                "typeString": "string calldata"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_string_calldata_ptr",
                                "typeString": "string calldata"
                              }
                            ],
                            "id": 1701,
                            "name": "strlen",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2504,
                            "src": "9722:6:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_uint256_$",
                              "typeString": "function (string memory) pure returns (uint256)"
                            }
                          },
                          "id": 1703,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9722:20:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "36",
                          "id": 1704,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9746:1:6",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_6_by_1",
                            "typeString": "int_const 6"
                          },
                          "value": "6"
                        },
                        "src": "9722:25:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1700,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3035,
                        3036
                      ],
                      "referencedDeclaration": 3035,
                      "src": "9714:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1706,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9714:34:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1707,
                  "nodeType": "ExpressionStatement",
                  "src": "9714:34:6"
                },
                {
                  "assignments": [
                    1709
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1709,
                      "name": "hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 1805,
                      "src": "9758:12:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1708,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "9758:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1716,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1713,
                            "name": "unhashedName",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1687,
                            "src": "9794:12:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_calldata_ptr",
                              "typeString": "string calldata"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_calldata_ptr",
                              "typeString": "string calldata"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1711,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3019,
                            "src": "9783:3:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 1712,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "9783:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 1714,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9783:24:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 1710,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3026,
                      "src": "9773:9:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 1715,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9773:35:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9758:50:6"
                },
                {
                  "assignments": [
                    1718
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1718,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1805,
                      "src": "9819:15:6",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1717,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1074,
                        "src": "9819:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1722,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1719,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1045,
                      "src": "9837:8:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$1074_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1721,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1720,
                      "name": "hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1709,
                      "src": "9846:4:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "9837:14:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$1074_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9819:32:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1724,
                        "name": "hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1709,
                        "src": "9882:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1723,
                      "name": "_tryEraseSingleNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2147,
                      "src": "9862:19:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 1725,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9862:25:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1726,
                  "nodeType": "ExpressionStatement",
                  "src": "9862:25:6"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 1734,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1728,
                            "name": "h",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1718,
                            "src": "9910:1:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                              "typeString": "struct HashRegistrar.Entry storage pointer"
                            }
                          },
                          "id": 1729,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "deed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1067,
                          "src": "9910:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Deed_$47",
                            "typeString": "contract Deed"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Deed_$47",
                            "typeString": "contract Deed"
                          }
                        ],
                        "id": 1727,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "9902:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 1730,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9902:15:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "307830",
                          "id": 1732,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9929:3:6",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0x0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 1731,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "9921:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 1733,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9921:12:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "src": "9902:31:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1775,
                  "nodeType": "IfStatement",
                  "src": "9898:321:6",
                  "trueBody": {
                    "id": 1774,
                    "nodeType": "Block",
                    "src": "9935:284:6",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 1743,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1735,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1718,
                              "src": "10050:1:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                "typeString": "struct HashRegistrar.Entry storage pointer"
                              }
                            },
                            "id": 1737,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "value",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1071,
                            "src": "10050:7:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1739,
                                  "name": "h",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1718,
                                  "src": "10064:1:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                    "typeString": "struct HashRegistrar.Entry storage pointer"
                                  }
                                },
                                "id": 1740,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "value",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1071,
                                "src": "10064:7:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 1741,
                                "name": "minPrice",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1063,
                                "src": "10073:8:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 1738,
                              "name": "max",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2399,
                              "src": "10060:3:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 1742,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10060:22:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "10050:32:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 1744,
                        "nodeType": "ExpressionStatement",
                        "src": "10050:32:6"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 1753,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1750,
                                  "name": "h",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1718,
                                  "src": "10114:1:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                    "typeString": "struct HashRegistrar.Entry storage pointer"
                                  }
                                },
                                "id": 1751,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "value",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1071,
                                "src": "10114:7:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "/",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "32",
                                "id": 1752,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "10122:1:6",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                },
                                "value": "2"
                              },
                              "src": "10114:9:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 1754,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10125:5:6",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1745,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1718,
                                "src": "10096:1:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 1748,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "deed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1067,
                              "src": "10096:6:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$47",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 1749,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setBalance",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 18,
                            "src": "10096:17:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bool_$returns$__$",
                              "typeString": "function (uint256,bool) external"
                            }
                          },
                          "id": 1755,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10096:35:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1756,
                        "nodeType": "ExpressionStatement",
                        "src": "10096:35:6"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1762,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3032,
                                "src": "10161:3:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 1763,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "10161:10:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1757,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1718,
                                "src": "10145:1:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 1760,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "deed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1067,
                              "src": "10145:6:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$47",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 1761,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6,
                            "src": "10145:15:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_payable_$returns$__$",
                              "typeString": "function (address payable) external"
                            }
                          },
                          "id": 1764,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10145:27:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1765,
                        "nodeType": "ExpressionStatement",
                        "src": "10145:27:6"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "31303030",
                              "id": 1771,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10203:4:6",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1000_by_1",
                                "typeString": "int_const 1000"
                              },
                              "value": "1000"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_1000_by_1",
                                "typeString": "int_const 1000"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1766,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1718,
                                "src": "10186:1:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 1769,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "deed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1067,
                              "src": "10186:6:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$47",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 1770,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "closeDeed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 23,
                            "src": "10186:16:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) external"
                            }
                          },
                          "id": 1772,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10186:22:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1773,
                        "nodeType": "ExpressionStatement",
                        "src": "10186:22:6"
                      }
                    ]
                  }
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1777,
                        "name": "hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1709,
                        "src": "10250:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1778,
                        "name": "unhashedName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1687,
                        "src": "10256:12:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1779,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1718,
                          "src": "10270:1:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1780,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1071,
                        "src": "10270:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1781,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1718,
                          "src": "10279:1:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1782,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1069,
                        "src": "10279:18:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1776,
                      "name": "HashInvalidated",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2622,
                      "src": "10234:15:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,string memory,uint256,uint256)"
                      }
                    },
                    "id": 1783,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10234:64:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1784,
                  "nodeType": "EmitStatement",
                  "src": "10229:69:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1789,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1785,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1718,
                        "src": "10309:1:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1787,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1071,
                      "src": "10309:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1788,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10319:1:6",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "10309:11:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1790,
                  "nodeType": "ExpressionStatement",
                  "src": "10309:11:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1795,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1791,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1718,
                        "src": "10330:1:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1793,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1073,
                      "src": "10330:12:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1794,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10345:1:6",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "10330:16:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1796,
                  "nodeType": "ExpressionStatement",
                  "src": "10330:16:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1803,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1797,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1718,
                        "src": "10356:1:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1799,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "deed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1067,
                      "src": "10356:6:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1801,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10370:1:6",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 1800,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 47,
                        "src": "10365:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$47_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 1802,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10365:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "10356:16:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$47",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 1804,
                  "nodeType": "ExpressionStatement",
                  "src": "10356:16:6"
                }
              ]
            },
            "documentation": "@dev Submit a name 6 characters long or less. If it has been registered,\n     the submitter will earn 50% of the deed value. \n\n     * We are purposefully handicapping the simplified registrar as a way \nto force it into being restructured in a few years.\n     * @param unhashedName An invalid name to search for in the registry.",
            "id": 1806,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1693,
                            "name": "unhashedName",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1687,
                            "src": "9672:12:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_calldata_ptr",
                              "typeString": "string calldata"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_calldata_ptr",
                              "typeString": "string calldata"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1691,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3019,
                            "src": "9661:3:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 1692,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "9661:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 1694,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9661:24:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 1690,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3026,
                      "src": "9651:9:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 1695,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9651:35:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 1696,
                      "name": "Mode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2572,
                      "src": "9688:4:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Mode_$2572_$",
                        "typeString": "type(enum Registrar.Mode)"
                      }
                    },
                    "id": 1697,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "Owned",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "9688:10:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$2572",
                      "typeString": "enum Registrar.Mode"
                    }
                  }
                ],
                "id": 1698,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1689,
                  "name": "inState",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1090,
                  "src": "9643:7:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_enum$_Mode_$2572_$",
                    "typeString": "modifier (bytes32,enum Registrar.Mode)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "9643:56:6"
              }
            ],
            "name": "invalidateName",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1688,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1687,
                  "name": "unhashedName",
                  "nodeType": "VariableDeclaration",
                  "scope": 1806,
                  "src": "9588:28:6",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1686,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "9588:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9587:30:6"
            },
            "returnParameters": {
              "id": 1699,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9704:0:6"
            },
            "scope": 2505,
            "src": "9564:815:6",
            "stateMutability": "nonpayable",
            "superFunction": 2691,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1842,
              "nodeType": "Block",
              "src": "11063:176:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1816,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1813,
                            "name": "labels",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1809,
                            "src": "11081:6:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                              "typeString": "bytes32[] calldata"
                            }
                          },
                          "id": 1814,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11081:13:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1815,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "11098:1:6",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "11081:18:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1812,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3035,
                        3036
                      ],
                      "referencedDeclaration": 3035,
                      "src": "11073:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1817,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11073:27:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1818,
                  "nodeType": "ExpressionStatement",
                  "src": "11073:27:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Mode_$2572",
                          "typeString": "enum Registrar.Mode"
                        },
                        "id": 1830,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 1821,
                                "name": "labels",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1809,
                                "src": "11124:6:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                  "typeString": "bytes32[] calldata"
                                }
                              },
                              "id": 1826,
                              "indexExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 1825,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1822,
                                    "name": "labels",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1809,
                                    "src": "11131:6:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                      "typeString": "bytes32[] calldata"
                                    }
                                  },
                                  "id": 1823,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "11131:13:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "-",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 1824,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "11147:1:6",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "11131:17:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "11124:25:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 1820,
                            "name": "state",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2030,
                            "src": "11118:5:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$2572_$",
                              "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                            }
                          },
                          "id": 1827,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11118:32:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$2572",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1828,
                            "name": "Mode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2572,
                            "src": "11154:4:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Mode_$2572_$",
                              "typeString": "type(enum Registrar.Mode)"
                            }
                          },
                          "id": 1829,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "Owned",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11154:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$2572",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "src": "11118:46:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1819,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3035,
                        3036
                      ],
                      "referencedDeclaration": 3035,
                      "src": "11110:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1831,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11110:55:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1832,
                  "nodeType": "ExpressionStatement",
                  "src": "11110:55:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1837,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1834,
                            "name": "labels",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1809,
                            "src": "11196:6:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                              "typeString": "bytes32[] calldata"
                            }
                          },
                          "id": 1835,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11196:13:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "-",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 1836,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "11212:1:6",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "11196:17:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1838,
                        "name": "labels",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1809,
                        "src": "11215:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1839,
                        "name": "rootNode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1041,
                        "src": "11223:8:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1833,
                      "name": "_eraseNodeHierarchy",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2356,
                      "src": "11176:19:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$returns$__$",
                        "typeString": "function (uint256,bytes32[] memory,bytes32)"
                      }
                    },
                    "id": 1840,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11176:56:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1841,
                  "nodeType": "ExpressionStatement",
                  "src": "11176:56:6"
                }
              ]
            },
            "documentation": "@dev Allows anyone to delete the owner and resolver records for a (subdomain of) a\n     name that is not currently owned in the registrar. If passing, eg, 'foo.bar.eth',\n     the owner and resolver fields on 'foo.bar.eth' and 'bar.eth' will all be cleared.\n     * @param labels A series of label hashes identifying the name to zero out, rooted at the\n       registrar's root. Must contain at least one element. For instance, to zero \n       'foo.bar.eth' on a registrar that owns '.eth', pass an array containing\n       [keccak256('foo'), keccak256('bar')].",
            "id": 1843,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "eraseNode",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1810,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1809,
                  "name": "labels",
                  "nodeType": "VariableDeclaration",
                  "scope": 1843,
                  "src": "11027:25:6",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1807,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "11027:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 1808,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "11027:9:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11026:27:6"
            },
            "returnParameters": {
              "id": 1811,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11063:0:6"
            },
            "scope": 2505,
            "src": "11008:231:6",
            "stateMutability": "nonpayable",
            "superFunction": 2697,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1917,
              "nodeType": "Block",
              "src": "11541:496:6",
              "statements": [
                {
                  "assignments": [
                    1852
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1852,
                      "name": "registrar",
                      "nodeType": "VariableDeclaration",
                      "scope": 1917,
                      "src": "11551:17:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 1851,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "11551:7:6",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1857,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1855,
                        "name": "rootNode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1041,
                        "src": "11581:8:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1853,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1039,
                        "src": "11571:3:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ENS_$436",
                          "typeString": "contract ENS"
                        }
                      },
                      "id": 1854,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "owner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 405,
                      "src": "11571:9:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                        "typeString": "function (bytes32) view external returns (address)"
                      }
                    },
                    "id": 1856,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11571:19:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11551:39:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 1863,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1859,
                          "name": "registrar",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1852,
                          "src": "11608:9:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1861,
                              "name": "this",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3060,
                              "src": "11629:4:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_HashRegistrar_$2505",
                                "typeString": "contract HashRegistrar"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_HashRegistrar_$2505",
                                "typeString": "contract HashRegistrar"
                              }
                            ],
                            "id": 1860,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "11621:7:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 1862,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11621:13:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "11608:26:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1858,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3035,
                        3036
                      ],
                      "referencedDeclaration": 3035,
                      "src": "11600:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1864,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11600:35:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1865,
                  "nodeType": "ExpressionStatement",
                  "src": "11600:35:6"
                },
                {
                  "assignments": [
                    1867
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1867,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1917,
                      "src": "11674:15:6",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1866,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1074,
                        "src": "11674:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1871,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1868,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1045,
                      "src": "11692:8:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$1074_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1870,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1869,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1845,
                      "src": "11701:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "11692:15:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$1074_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11674:33:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1877,
                        "name": "registrar",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1852,
                        "src": "11737:9:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1872,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "11717:1:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1875,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1067,
                        "src": "11717:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$47",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 1876,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setRegistrar",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 11,
                      "src": "11717:19:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 1878,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11717:30:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1879,
                  "nodeType": "ExpressionStatement",
                  "src": "11717:30:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1884,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1845,
                        "src": "11860:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1885,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "11867:1:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1886,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1067,
                        "src": "11867:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$47",
                          "typeString": "contract Deed"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1887,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "11875:1:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1888,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1069,
                        "src": "11875:18:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Deed_$47",
                          "typeString": "contract Deed"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1881,
                            "name": "registrar",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1852,
                            "src": "11825:9:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 1880,
                          "name": "Registrar",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2727,
                          "src": "11815:9:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Registrar_$2727_$",
                            "typeString": "type(contract Registrar)"
                          }
                        },
                        "id": 1882,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11815:20:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Registrar_$2727",
                          "typeString": "contract Registrar"
                        }
                      },
                      "id": 1883,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "acceptRegistrarTransfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2711,
                      "src": "11815:44:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_contract$_Deed_$47_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,contract Deed,uint256) external"
                      }
                    },
                    "id": 1889,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11815:79:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1890,
                  "nodeType": "ExpressionStatement",
                  "src": "11815:79:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1897,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1891,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1867,
                        "src": "11935:1:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1893,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "deed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1067,
                      "src": "11935:6:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1895,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "11949:1:6",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 1894,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 47,
                        "src": "11944:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$47_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 1896,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11944:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "11935:16:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$47",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 1898,
                  "nodeType": "ExpressionStatement",
                  "src": "11935:16:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1903,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1899,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1867,
                        "src": "11961:1:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1901,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "registrationDate",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1069,
                      "src": "11961:18:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1902,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "11982:1:6",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "11961:22:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1904,
                  "nodeType": "ExpressionStatement",
                  "src": "11961:22:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1909,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1905,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1867,
                        "src": "11993:1:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1907,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1071,
                      "src": "11993:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1908,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12003:1:6",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "11993:11:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1910,
                  "nodeType": "ExpressionStatement",
                  "src": "11993:11:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1915,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1911,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1867,
                        "src": "12014:1:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1913,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1073,
                      "src": "12014:12:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1914,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12029:1:6",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12014:16:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1916,
                  "nodeType": "ExpressionStatement",
                  "src": "12014:16:6"
                }
              ]
            },
            "documentation": "@dev Transfers the deed to the current registrar, if different from this one.\n     * Used during the upgrade process to a permanent registrar.\n     * @param _hash The name hash to transfer.",
            "id": 1918,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 1848,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1845,
                    "src": "11534:5:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 1849,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1847,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1115,
                  "src": "11524:9:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "11524:16:6"
              }
            ],
            "name": "transferRegistrars",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1846,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1845,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1918,
                  "src": "11500:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1844,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11500:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11499:15:6"
            },
            "returnParameters": {
              "id": 1850,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11541:0:6"
            },
            "scope": 2505,
            "src": "11472:565:6",
            "stateMutability": "nonpayable",
            "superFunction": 2702,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1933,
              "nodeType": "Block",
              "src": "12523:82:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1927,
                    "name": "hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1920,
                    "src": "12533:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 1928,
                  "nodeType": "ExpressionStatement",
                  "src": "12533:4:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1929,
                    "name": "deed",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1922,
                    "src": "12539:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$47",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 1930,
                  "nodeType": "ExpressionStatement",
                  "src": "12539:4:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1931,
                    "name": "registrationDate",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1924,
                    "src": "12545:16:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1932,
                  "nodeType": "ExpressionStatement",
                  "src": "12545:16:6"
                }
              ]
            },
            "documentation": "@dev Accepts a transfer from a previous registrar; stubbed out here since there\n     is no previous registrar implementing this interface.\n     * @param hash The sha3 hash of the label to transfer.\n@param deed The Deed object for the name being transferred in.\n@param registrationDate The date at which the name was originally registered.",
            "id": 1934,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "acceptRegistrarTransfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1925,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1920,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1934,
                  "src": "12466:12:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1919,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12466:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1922,
                  "name": "deed",
                  "nodeType": "VariableDeclaration",
                  "scope": 1934,
                  "src": "12480:9:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Deed_$47",
                    "typeString": "contract Deed"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1921,
                    "name": "Deed",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 47,
                    "src": "12480:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$47",
                      "typeString": "contract Deed"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1924,
                  "name": "registrationDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 1934,
                  "src": "12491:21:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1923,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "12491:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12465:48:6"
            },
            "returnParameters": {
              "id": 1926,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12523:0:6"
            },
            "scope": 2505,
            "src": "12433:172:6",
            "stateMutability": "nonpayable",
            "superFunction": 2711,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1970,
              "nodeType": "Block",
              "src": "12699:141:6",
              "statements": [
                {
                  "assignments": [
                    1950
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1950,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1970,
                      "src": "12709:15:6",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1949,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1074,
                        "src": "12709:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1954,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1951,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1045,
                      "src": "12727:8:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$1074_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1953,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1952,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1936,
                      "src": "12736:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "12727:15:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$1074_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12709:33:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1956,
                            "name": "_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1936,
                            "src": "12766:5:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 1955,
                          "name": "state",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2030,
                          "src": "12760:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$2572_$",
                            "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                          }
                        },
                        "id": 1957,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12760:12:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$2572",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1959,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1950,
                              "src": "12782:1:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                "typeString": "struct HashRegistrar.Entry storage pointer"
                              }
                            },
                            "id": 1960,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "deed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1067,
                            "src": "12782:6:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$47",
                              "typeString": "contract Deed"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_Deed_$47",
                              "typeString": "contract Deed"
                            }
                          ],
                          "id": 1958,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "12774:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 1961,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12774:15:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1962,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1950,
                          "src": "12791:1:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1963,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1069,
                        "src": "12791:18:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1964,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1950,
                          "src": "12811:1:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1965,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1071,
                        "src": "12811:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1966,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1950,
                          "src": "12820:1:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1967,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "highestBid",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1073,
                        "src": "12820:12:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "id": 1968,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "12759:74:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_enum$_Mode_$2572_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$",
                      "typeString": "tuple(enum Registrar.Mode,address,uint256,uint256,uint256)"
                    }
                  },
                  "functionReturnParameters": 1948,
                  "id": 1969,
                  "nodeType": "Return",
                  "src": "12752:81:6"
                }
              ]
            },
            "documentation": null,
            "id": 1971,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "entries",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1937,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1936,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1971,
                  "src": "12628:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1935,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12628:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12627:15:6"
            },
            "returnParameters": {
              "id": 1948,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1939,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1971,
                  "src": "12666:4:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mode_$2572",
                    "typeString": "enum Registrar.Mode"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1938,
                    "name": "Mode",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2572,
                    "src": "12666:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$2572",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1941,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1971,
                  "src": "12672:7:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1940,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "12672:7:6",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1943,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1971,
                  "src": "12681:4:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1942,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "12681:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1945,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1971,
                  "src": "12687:4:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1944,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "12687:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1947,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1971,
                  "src": "12693:4:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1946,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "12693:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12665:33:6"
            },
            "scope": 2505,
            "src": "12611:229:6",
            "stateMutability": "view",
            "superFunction": 2726,
            "visibility": "external"
          },
          {
            "body": {
              "id": 2029,
              "nodeType": "Block",
              "src": "13126:528:6",
              "statements": [
                {
                  "assignments": [
                    1979
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1979,
                      "name": "entry",
                      "nodeType": "VariableDeclaration",
                      "scope": 2029,
                      "src": "13136:19:6",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1978,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1074,
                        "src": "13136:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1983,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1980,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1045,
                      "src": "13158:8:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$1074_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1982,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1981,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1973,
                      "src": "13167:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "13158:15:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$1074_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13136:37:6"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 1988,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "13188:22:6",
                    "subExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1985,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1973,
                          "src": "13199:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 1986,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3034,
                          "src": "13206:3:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 1984,
                        "name": "isAllowed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2046,
                        "src": "13189:9:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (bytes32,uint256) view returns (bool)"
                        }
                      },
                      "id": 1987,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13189:21:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 1996,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 1993,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3034,
                        "src": "13274:3:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1994,
                          "name": "entry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1979,
                          "src": "13280:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1995,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1069,
                        "src": "13280:22:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "13274:28:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 2026,
                      "nodeType": "Block",
                      "src": "13492:156:6",
                      "statements": [
                        {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 2016,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2013,
                                "name": "entry",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1979,
                                "src": "13510:5:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 2014,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "highestBid",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1073,
                              "src": "13510:16:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2015,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "13530:1:6",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "13510:21:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 2024,
                            "nodeType": "Block",
                            "src": "13588:50:6",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2021,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2572,
                                    "src": "13613:4:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$2572_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 2022,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Owned",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "13613:10:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$2572",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1977,
                                "id": 2023,
                                "nodeType": "Return",
                                "src": "13606:17:6"
                              }
                            ]
                          },
                          "id": 2025,
                          "nodeType": "IfStatement",
                          "src": "13506:132:6",
                          "trueBody": {
                            "id": 2020,
                            "nodeType": "Block",
                            "src": "13533:49:6",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2017,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2572,
                                    "src": "13558:4:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$2572_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 2018,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Open",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "13558:9:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$2572",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1977,
                                "id": 2019,
                                "nodeType": "Return",
                                "src": "13551:16:6"
                              }
                            ]
                          }
                        }
                      ]
                    },
                    "id": 2027,
                    "nodeType": "IfStatement",
                    "src": "13270:378:6",
                    "trueBody": {
                      "id": 2012,
                      "nodeType": "Block",
                      "src": "13304:182:6",
                      "statements": [
                        {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 2002,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 1997,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3034,
                              "src": "13322:3:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 2001,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1998,
                                  "name": "entry",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1979,
                                  "src": "13328:5:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                    "typeString": "struct HashRegistrar.Entry storage pointer"
                                  }
                                },
                                "id": 1999,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "registrationDate",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1069,
                                "src": "13328:22:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 2000,
                                "name": "revealPeriod",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1057,
                                "src": "13353:12:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "src": "13328:37:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "13322:43:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 2010,
                            "nodeType": "Block",
                            "src": "13425:51:6",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2007,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2572,
                                    "src": "13450:4:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$2572_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 2008,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Reveal",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "13450:11:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$2572",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1977,
                                "id": 2009,
                                "nodeType": "Return",
                                "src": "13443:18:6"
                              }
                            ]
                          },
                          "id": 2011,
                          "nodeType": "IfStatement",
                          "src": "13318:158:6",
                          "trueBody": {
                            "id": 2006,
                            "nodeType": "Block",
                            "src": "13367:52:6",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2003,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2572,
                                    "src": "13392:4:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$2572_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 2004,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Auction",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "13392:12:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$2572",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1977,
                                "id": 2005,
                                "nodeType": "Return",
                                "src": "13385:19:6"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  "id": 2028,
                  "nodeType": "IfStatement",
                  "src": "13184:464:6",
                  "trueBody": {
                    "id": 1992,
                    "nodeType": "Block",
                    "src": "13212:52:6",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1989,
                            "name": "Mode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2572,
                            "src": "13233:4:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Mode_$2572_$",
                              "typeString": "type(enum Registrar.Mode)"
                            }
                          },
                          "id": 1990,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "NotYetAvailable",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "13233:20:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$2572",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "functionReturnParameters": 1977,
                        "id": 1991,
                        "nodeType": "Return",
                        "src": "13226:27:6"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 2030,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "state",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1974,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1973,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2030,
                  "src": "13084:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1972,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13084:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13083:15:6"
            },
            "returnParameters": {
              "id": 1977,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1976,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2030,
                  "src": "13120:4:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mode_$2572",
                    "typeString": "enum Registrar.Mode"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1975,
                    "name": "Mode",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2572,
                    "src": "13120:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$2572",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13119:6:6"
            },
            "scope": 2505,
            "src": "13069:585:6",
            "stateMutability": "view",
            "superFunction": 2629,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2045,
              "nodeType": "Block",
              "src": "14059:58:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2043,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2039,
                      "name": "_timestamp",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2034,
                      "src": "14076:10:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2041,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2032,
                          "src": "14104:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 2040,
                        "name": "getAllowedTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2069,
                        "src": "14089:14:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$",
                          "typeString": "function (bytes32) view returns (uint256)"
                        }
                      },
                      "id": 2042,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14089:21:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14076:34:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 2038,
                  "id": 2044,
                  "nodeType": "Return",
                  "src": "14069:41:6"
                }
              ]
            },
            "documentation": "@dev Determines if a name is available for registration yet\n     * Each name will be assigned a random date in which its auction\ncan be started, from 0 to 8 weeks\n     * @param _hash The hash to start an auction on\n@param _timestamp The timestamp to query about",
            "id": 2046,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "isAllowed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2035,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2032,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2046,
                  "src": "13992:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2031,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13992:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2034,
                  "name": "_timestamp",
                  "nodeType": "VariableDeclaration",
                  "scope": 2046,
                  "src": "14007:15:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2033,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "14007:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13991:32:6"
            },
            "returnParameters": {
              "id": 2038,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2037,
                  "name": "allowed",
                  "nodeType": "VariableDeclaration",
                  "scope": 2046,
                  "src": "14045:12:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2036,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "14045:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14044:14:6"
            },
            "scope": 2505,
            "src": "13973:144:6",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2068,
              "nodeType": "Block",
              "src": "14424:140:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2066,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2053,
                      "name": "registryStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1065,
                      "src": "14441:15:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2064,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 2061,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 2054,
                                  "name": "launchLength",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1060,
                                  "src": "14461:12:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 2059,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "id": 2056,
                                            "name": "_hash",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 2048,
                                            "src": "14482:5:6",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "id": 2055,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "14477:4:6",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": "uint"
                                        },
                                        "id": 2057,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "14477:11:6",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">>",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "313238",
                                        "id": 2058,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "14492:3:6",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_128_by_1",
                                          "typeString": "int_const 128"
                                        },
                                        "value": "128"
                                      },
                                      "src": "14477:18:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "id": 2060,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "14476:20:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "14461:35:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "id": 2062,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "14460:37:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">>",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "313238",
                            "id": 2063,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "14501:3:6",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            "value": "128"
                          },
                          "src": "14460:44:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 2065,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "14459:46:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14441:64:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2052,
                  "id": 2067,
                  "nodeType": "Return",
                  "src": "14434:71:6"
                }
              ]
            },
            "documentation": "@dev Returns available date for hash\n     * The available time from the `registryStarted` for a hash is proportional\nto its numeric value.\n     * @param _hash The hash to start an auction on",
            "id": 2069,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getAllowedTime",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2049,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2048,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2069,
                  "src": "14382:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2047,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14382:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14381:15:6"
            },
            "returnParameters": {
              "id": 2052,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2051,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2069,
                  "src": "14418:4:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2050,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "14418:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14417:6:6"
            },
            "scope": 2505,
            "src": "14358:206:6",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2092,
              "nodeType": "Block",
              "src": "14954:77:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2085,
                            "name": "hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2071,
                            "src": "14998:4:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2086,
                            "name": "owner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2073,
                            "src": "15004:5:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2087,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2075,
                            "src": "15011:5:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2088,
                            "name": "salt",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2077,
                            "src": "15018:4:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2083,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3019,
                            "src": "14981:3:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 2084,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "14981:16:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 2089,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "14981:42:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 2082,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3026,
                      "src": "14971:9:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 2090,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14971:53:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 2081,
                  "id": 2091,
                  "nodeType": "Return",
                  "src": "14964:60:6"
                }
              ]
            },
            "documentation": "@dev Hash the values required for a secret bid\n     * @param hash The node corresponding to the desired namehash\n@param value The bid amount\n@param salt A random value to ensure secrecy of the bid\n@return The hash of the bid values",
            "id": 2093,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "shaBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2078,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2071,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2093,
                  "src": "14869:12:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2070,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14869:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2073,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 2093,
                  "src": "14883:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2072,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14883:7:6",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2075,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 2093,
                  "src": "14898:10:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2074,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "14898:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2077,
                  "name": "salt",
                  "nodeType": "VariableDeclaration",
                  "scope": 2093,
                  "src": "14910:12:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2076,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14910:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14868:55:6"
            },
            "returnParameters": {
              "id": 2081,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2080,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2093,
                  "src": "14945:7:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2079,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14945:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14944:9:6"
            },
            "scope": 2505,
            "src": "14853:178:6",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2146,
              "nodeType": "Block",
              "src": "15090:302:6",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2105,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2100,
                          "name": "rootNode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1041,
                          "src": "15114:8:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 2098,
                          "name": "ens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1039,
                          "src": "15104:3:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ENS_$436",
                            "typeString": "contract ENS"
                          }
                        },
                        "id": 2099,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 405,
                        "src": "15104:9:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                          "typeString": "function (bytes32) view external returns (address)"
                        }
                      },
                      "id": 2101,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15104:19:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2103,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3060,
                          "src": "15135:4:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_HashRegistrar_$2505",
                            "typeString": "contract HashRegistrar"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_HashRegistrar_$2505",
                            "typeString": "contract HashRegistrar"
                          }
                        ],
                        "id": 2102,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "15127:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2104,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15127:13:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "15104:36:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2145,
                  "nodeType": "IfStatement",
                  "src": "15100:286:6",
                  "trueBody": {
                    "id": 2144,
                    "nodeType": "Block",
                    "src": "15142:244:6",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2109,
                              "name": "rootNode",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1041,
                              "src": "15176:8:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2110,
                              "name": "label",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2095,
                              "src": "15186:5:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 2112,
                                  "name": "this",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3060,
                                  "src": "15201:4:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_HashRegistrar_$2505",
                                    "typeString": "contract HashRegistrar"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_HashRegistrar_$2505",
                                    "typeString": "contract HashRegistrar"
                                  }
                                ],
                                "id": 2111,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "15193:7:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 2113,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15193:13:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 2106,
                              "name": "ens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1039,
                              "src": "15156:3:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ENS_$436",
                                "typeString": "contract ENS"
                              }
                            },
                            "id": 2108,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setSubnodeOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 370,
                            "src": "15156:19:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_bytes32_$",
                              "typeString": "function (bytes32,bytes32,address) external returns (bytes32)"
                            }
                          },
                          "id": 2114,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15156:51:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 2115,
                        "nodeType": "ExpressionStatement",
                        "src": "15156:51:6"
                      },
                      {
                        "assignments": [
                          2117
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 2117,
                            "name": "node",
                            "nodeType": "VariableDeclaration",
                            "scope": 2144,
                            "src": "15221:12:6",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 2116,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "15221:7:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 2125,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 2121,
                                  "name": "rootNode",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1041,
                                  "src": "15263:8:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 2122,
                                  "name": "label",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2095,
                                  "src": "15273:5:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2119,
                                  "name": "abi",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3019,
                                  "src": "15246:3:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_abi",
                                    "typeString": "abi"
                                  }
                                },
                                "id": 2120,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberName": "encodePacked",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "15246:16:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function () pure returns (bytes memory)"
                                }
                              },
                              "id": 2123,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15246:33:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 2118,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3026,
                            "src": "15236:9:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (bytes memory) pure returns (bytes32)"
                            }
                          },
                          "id": 2124,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15236:44:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "15221:59:6"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2129,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2117,
                              "src": "15310:4:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "307830",
                                  "id": 2131,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "15324:3:6",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0x0"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 2130,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "15316:7:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 2132,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15316:12:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 2126,
                              "name": "ens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1039,
                              "src": "15294:3:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ENS_$436",
                                "typeString": "contract ENS"
                              }
                            },
                            "id": 2128,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setResolver",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 377,
                            "src": "15294:15:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                              "typeString": "function (bytes32,address) external"
                            }
                          },
                          "id": 2133,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15294:35:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2134,
                        "nodeType": "ExpressionStatement",
                        "src": "15294:35:6"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2138,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2117,
                              "src": "15356:4:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "307830",
                                  "id": 2140,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "15370:3:6",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0x0"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 2139,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "15362:7:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 2141,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15362:12:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 2135,
                              "name": "ens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1039,
                              "src": "15343:3:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ENS_$436",
                                "typeString": "contract ENS"
                              }
                            },
                            "id": 2137,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 384,
                            "src": "15343:12:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                              "typeString": "function (bytes32,address) external"
                            }
                          },
                          "id": 2142,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15343:32:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2143,
                        "nodeType": "ExpressionStatement",
                        "src": "15343:32:6"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 2147,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_tryEraseSingleNode",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2096,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2095,
                  "name": "label",
                  "nodeType": "VariableDeclaration",
                  "scope": 2147,
                  "src": "15066:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2094,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15066:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15065:15:6"
            },
            "returnParameters": {
              "id": 2097,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15090:0:6"
            },
            "scope": 2505,
            "src": "15037:355:6",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2205,
              "nodeType": "Block",
              "src": "15460:366:6",
              "statements": [
                {
                  "assignments": [
                    2155
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2155,
                      "name": "mode",
                      "nodeType": "VariableDeclaration",
                      "scope": 2205,
                      "src": "15470:9:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$2572",
                        "typeString": "enum Registrar.Mode"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2154,
                        "name": "Mode",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2572,
                        "src": "15470:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$2572",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2159,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2157,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2149,
                        "src": "15488:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2156,
                      "name": "state",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2030,
                      "src": "15482:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$2572_$",
                        "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                      }
                    },
                    "id": 2158,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15482:12:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$2572",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15470:24:6"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$2572",
                      "typeString": "enum Registrar.Mode"
                    },
                    "id": 2163,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2160,
                      "name": "mode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2155,
                      "src": "15508:4:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$2572",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2161,
                        "name": "Mode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2572,
                        "src": "15516:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Mode_$2572_$",
                          "typeString": "type(enum Registrar.Mode)"
                        }
                      },
                      "id": 2162,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Auction",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "15516:12:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$2572",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "src": "15508:20:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2165,
                  "nodeType": "IfStatement",
                  "src": "15504:33:6",
                  "trueBody": {
                    "expression": null,
                    "functionReturnParameters": 2153,
                    "id": 2164,
                    "nodeType": "Return",
                    "src": "15530:7:6"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Mode_$2572",
                          "typeString": "enum Registrar.Mode"
                        },
                        "id": 2170,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 2167,
                          "name": "mode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2155,
                          "src": "15554:4:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$2572",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2168,
                            "name": "Mode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2572,
                            "src": "15562:4:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Mode_$2572_$",
                              "typeString": "type(enum Registrar.Mode)"
                            }
                          },
                          "id": 2169,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "Open",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "15562:9:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$2572",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "src": "15554:17:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2166,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3035,
                        3036
                      ],
                      "referencedDeclaration": 3035,
                      "src": "15546:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2171,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15546:26:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2172,
                  "nodeType": "ExpressionStatement",
                  "src": "15546:26:6"
                },
                {
                  "assignments": [
                    2174
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2174,
                      "name": "newAuction",
                      "nodeType": "VariableDeclaration",
                      "scope": 2205,
                      "src": "15583:24:6",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2173,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1074,
                        "src": "15583:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2178,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2175,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1045,
                      "src": "15610:8:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$1074_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 2177,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2176,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2149,
                      "src": "15619:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "15610:15:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$1074_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15583:42:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2185,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2179,
                        "name": "newAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2174,
                        "src": "15635:10:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 2181,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "registrationDate",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1069,
                      "src": "15635:27:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 2184,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 2182,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3034,
                        "src": "15665:3:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 2183,
                        "name": "totalAuctionLength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1054,
                        "src": "15671:18:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "src": "15665:24:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15635:54:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2186,
                  "nodeType": "ExpressionStatement",
                  "src": "15635:54:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2191,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2187,
                        "name": "newAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2174,
                        "src": "15699:10:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 2189,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1071,
                      "src": "15699:16:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2190,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15718:1:6",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "15699:20:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2192,
                  "nodeType": "ExpressionStatement",
                  "src": "15699:20:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2197,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2193,
                        "name": "newAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2174,
                        "src": "15729:10:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 2195,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1073,
                      "src": "15729:21:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2196,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15753:1:6",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "15729:25:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2198,
                  "nodeType": "ExpressionStatement",
                  "src": "15729:25:6"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2200,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2149,
                        "src": "15784:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2201,
                          "name": "newAuction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2174,
                          "src": "15791:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 2202,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1069,
                        "src": "15791:27:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2199,
                      "name": "AuctionStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2578,
                      "src": "15769:14:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 2203,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15769:50:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2204,
                  "nodeType": "EmitStatement",
                  "src": "15764:55:6"
                }
              ]
            },
            "documentation": null,
            "id": 2206,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [],
                "id": 2152,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2151,
                  "name": "registryOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1145,
                  "src": "15445:12:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "15445:14:6"
              }
            ],
            "name": "_startAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2150,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2149,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2206,
                  "src": "15421:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2148,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15421:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15420:15:6"
            },
            "returnParameters": {
              "id": 2153,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15460:0:6"
            },
            "scope": 2505,
            "src": "15398:428:6",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2231,
              "nodeType": "Block",
              "src": "15891:109:6",
              "statements": [
                {
                  "body": {
                    "id": 2229,
                    "nodeType": "Block",
                    "src": "15944:50:6",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 2224,
                                "name": "_hashes",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2209,
                                "src": "15972:7:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 2226,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 2225,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2213,
                                "src": "15980:1:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "15972:10:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 2223,
                            "name": "_startAuction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2206,
                            "src": "15958:13:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                              "typeString": "function (bytes32)"
                            }
                          },
                          "id": 2227,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15958:25:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2228,
                        "nodeType": "ExpressionStatement",
                        "src": "15958:25:6"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2219,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2216,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2213,
                      "src": "15918:1:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2217,
                        "name": "_hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2209,
                        "src": "15922:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      "id": 2218,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "15922:14:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15918:18:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2230,
                  "initializationExpression": {
                    "assignments": [
                      2213
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 2213,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 2230,
                        "src": "15906:6:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 2212,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "15906:4:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 2215,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2214,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15915:1:6",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "15906:10:6"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2221,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "15938:4:6",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 2220,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2213,
                        "src": "15938:1:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2222,
                    "nodeType": "ExpressionStatement",
                    "src": "15938:4:6"
                  },
                  "nodeType": "ForStatement",
                  "src": "15901:93:6"
                }
              ]
            },
            "documentation": null,
            "id": 2232,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_startAuctions",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2210,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2209,
                  "name": "_hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 2232,
                  "src": "15856:24:6",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2207,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "15856:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 2208,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "15856:9:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15855:26:6"
            },
            "returnParameters": {
              "id": 2211,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15891:0:6"
            },
            "scope": 2505,
            "src": "15832:168:6",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2289,
              "nodeType": "Block",
              "src": "16051:357:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 2249,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 2239,
                                  "name": "sealedBids",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1051,
                                  "src": "16077:10:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$47_$_$",
                                    "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                                  }
                                },
                                "id": 2242,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2240,
                                    "name": "msg",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3032,
                                    "src": "16088:3:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_message",
                                      "typeString": "msg"
                                    }
                                  },
                                  "id": 2241,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "sender",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "16088:10:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "16077:22:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$47_$",
                                  "typeString": "mapping(bytes32 => contract Deed)"
                                }
                              },
                              "id": 2244,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 2243,
                                "name": "sealedBid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2234,
                                "src": "16100:9:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "16077:33:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$47",
                                "typeString": "contract Deed"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_Deed_$47",
                                "typeString": "contract Deed"
                              }
                            ],
                            "id": 2238,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "16069:7:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 2245,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16069:42:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 2247,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "16123:3:6",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 2246,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "16115:7:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 2248,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16115:12:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "src": "16069:58:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2237,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3035,
                        3036
                      ],
                      "referencedDeclaration": 3035,
                      "src": "16061:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2250,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16061:67:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2251,
                  "nodeType": "ExpressionStatement",
                  "src": "16061:67:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2256,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2253,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3032,
                            "src": "16146:3:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2254,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "16146:9:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 2255,
                          "name": "minPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1063,
                          "src": "16159:8:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "16146:21:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2252,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3035,
                        3036
                      ],
                      "referencedDeclaration": 3035,
                      "src": "16138:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2257,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16138:30:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2258,
                  "nodeType": "ExpressionStatement",
                  "src": "16138:30:6"
                },
                {
                  "assignments": [
                    2260
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2260,
                      "name": "bid",
                      "nodeType": "VariableDeclaration",
                      "scope": 2289,
                      "src": "16233:8:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2259,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 47,
                        "src": "16233:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$47",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2271,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2268,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3032,
                          "src": "16286:3:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2269,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "16286:10:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2265,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3032,
                            "src": "16275:3:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2266,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "16275:9:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "id": 2262,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "16245:22:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_creation_payable$_t_address_payable_$returns$_t_contract$_DeedImplementation_$299_$",
                                "typeString": "function (address payable) payable returns (contract DeedImplementation)"
                              },
                              "typeName": {
                                "contractScope": null,
                                "id": 2261,
                                "name": "DeedImplementation",
                                "nodeType": "UserDefinedTypeName",
                                "referencedDeclaration": 299,
                                "src": "16249:18:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_DeedImplementation_$299",
                                  "typeString": "contract DeedImplementation"
                                }
                              }
                            }
                          ],
                          "id": 2263,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "16244:24:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_creation_payable$_t_address_payable_$returns$_t_contract$_DeedImplementation_$299_$",
                            "typeString": "function (address payable) payable returns (contract DeedImplementation)"
                          }
                        },
                        "id": 2264,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "16244:30:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_setvalue_pure$_t_uint256_$returns$_t_function_creation_payable$_t_address_payable_$returns$_t_contract$_DeedImplementation_$299_$value_$",
                          "typeString": "function (uint256) pure returns (function (address payable) payable returns (contract DeedImplementation))"
                        }
                      },
                      "id": 2267,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "16244:41:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_creation_payable$_t_address_payable_$returns$_t_contract$_DeedImplementation_$299_$value",
                        "typeString": "function (address payable) payable returns (contract DeedImplementation)"
                      }
                    },
                    "id": 2270,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16244:53:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DeedImplementation_$299",
                      "typeString": "contract DeedImplementation"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16233:64:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2279,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2272,
                          "name": "sealedBids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1051,
                          "src": "16307:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$47_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                          }
                        },
                        "id": 2276,
                        "indexExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2273,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3032,
                            "src": "16318:3:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2274,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "16318:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16307:22:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$47_$",
                          "typeString": "mapping(bytes32 => contract Deed)"
                        }
                      },
                      "id": 2277,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2275,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2234,
                        "src": "16330:9:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "16307:33:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2278,
                      "name": "bid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2260,
                      "src": "16343:3:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "16307:39:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$47",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 2280,
                  "nodeType": "ExpressionStatement",
                  "src": "16307:39:6"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2282,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2234,
                        "src": "16368:9:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2283,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3032,
                          "src": "16379:3:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2284,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "16379:10:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2285,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3032,
                          "src": "16391:3:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2286,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "16391:9:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2281,
                      "name": "NewBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2586,
                      "src": "16361:6:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256)"
                      }
                    },
                    "id": 2287,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16361:40:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2288,
                  "nodeType": "EmitStatement",
                  "src": "16356:45:6"
                }
              ]
            },
            "documentation": null,
            "id": 2290,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_newBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2235,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2234,
                  "name": "sealedBid",
                  "nodeType": "VariableDeclaration",
                  "scope": 2290,
                  "src": "16023:17:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2233,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16023:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16022:19:6"
            },
            "returnParameters": {
              "id": 2236,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16051:0:6"
            },
            "scope": 2505,
            "src": "16006:402:6",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2355,
              "nodeType": "Block",
              "src": "16501:441:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2303,
                        "name": "node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2297,
                        "src": "16569:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2304,
                          "name": "labels",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2295,
                          "src": "16575:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 2306,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2305,
                          "name": "idx",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2292,
                          "src": "16582:3:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16575:11:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2308,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3060,
                            "src": "16596:4:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_HashRegistrar_$2505",
                              "typeString": "contract HashRegistrar"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_HashRegistrar_$2505",
                              "typeString": "contract HashRegistrar"
                            }
                          ],
                          "id": 2307,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "16588:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 2309,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16588:13:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2300,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1039,
                        "src": "16549:3:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ENS_$436",
                          "typeString": "contract ENS"
                        }
                      },
                      "id": 2302,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setSubnodeOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 370,
                      "src": "16549:19:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_bytes32_$",
                        "typeString": "function (bytes32,bytes32,address) external returns (bytes32)"
                      }
                    },
                    "id": 2310,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16549:53:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 2311,
                  "nodeType": "ExpressionStatement",
                  "src": "16549:53:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2322,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2312,
                      "name": "node",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2297,
                      "src": "16612:4:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2316,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2297,
                              "src": "16646:4:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 2317,
                                "name": "labels",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2295,
                                "src": "16652:6:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 2319,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 2318,
                                "name": "idx",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2292,
                                "src": "16659:3:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "16652:11:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 2314,
                              "name": "abi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3019,
                              "src": "16629:3:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_abi",
                                "typeString": "abi"
                              }
                            },
                            "id": 2315,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "encodePacked",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "16629:16:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function () pure returns (bytes memory)"
                            }
                          },
                          "id": 2320,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16629:35:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 2313,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3026,
                        "src": "16619:9:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (bytes memory) pure returns (bytes32)"
                        }
                      },
                      "id": 2321,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "16619:46:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "16612:53:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 2323,
                  "nodeType": "ExpressionStatement",
                  "src": "16612:53:6"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2326,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2324,
                      "name": "idx",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2292,
                      "src": "16724:3:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2325,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16730:1:6",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "16724:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2336,
                  "nodeType": "IfStatement",
                  "src": "16720:80:6",
                  "trueBody": {
                    "id": 2335,
                    "nodeType": "Block",
                    "src": "16733:67:6",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 2330,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 2328,
                                "name": "idx",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2292,
                                "src": "16767:3:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 2329,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "16773:1:6",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "src": "16767:7:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2331,
                              "name": "labels",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2295,
                              "src": "16776:6:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2332,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2297,
                              "src": "16784:4:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 2327,
                            "name": "_eraseNodeHierarchy",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2356,
                            "src": "16747:19:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$returns$__$",
                              "typeString": "function (uint256,bytes32[] memory,bytes32)"
                            }
                          },
                          "id": 2333,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16747:42:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2334,
                        "nodeType": "ExpressionStatement",
                        "src": "16747:42:6"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2340,
                        "name": "node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2297,
                        "src": "16874:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "307830",
                            "id": 2342,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "16888:3:6",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0x0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 2341,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "16880:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 2343,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16880:12:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2337,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1039,
                        "src": "16858:3:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ENS_$436",
                          "typeString": "contract ENS"
                        }
                      },
                      "id": 2339,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setResolver",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 377,
                      "src": "16858:15:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address) external"
                      }
                    },
                    "id": 2344,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16858:35:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2345,
                  "nodeType": "ExpressionStatement",
                  "src": "16858:35:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2349,
                        "name": "node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2297,
                        "src": "16916:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "307830",
                            "id": 2351,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "16930:3:6",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0x0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 2350,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "16922:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 2352,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16922:12:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2346,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1039,
                        "src": "16903:3:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ENS_$436",
                          "typeString": "contract ENS"
                        }
                      },
                      "id": 2348,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 384,
                      "src": "16903:12:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address) external"
                      }
                    },
                    "id": 2353,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16903:32:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2354,
                  "nodeType": "ExpressionStatement",
                  "src": "16903:32:6"
                }
              ]
            },
            "documentation": null,
            "id": 2356,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_eraseNodeHierarchy",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2298,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2292,
                  "name": "idx",
                  "nodeType": "VariableDeclaration",
                  "scope": 2356,
                  "src": "16443:8:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2291,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "16443:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2295,
                  "name": "labels",
                  "nodeType": "VariableDeclaration",
                  "scope": 2356,
                  "src": "16453:23:6",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2293,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "16453:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 2294,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "16453:9:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2297,
                  "name": "node",
                  "nodeType": "VariableDeclaration",
                  "scope": 2356,
                  "src": "16478:12:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2296,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16478:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16442:49:6"
            },
            "returnParameters": {
              "id": 2299,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16501:0:6"
            },
            "scope": 2505,
            "src": "16414:528:6",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2380,
              "nodeType": "Block",
              "src": "17198:118:6",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2370,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2365,
                          "name": "rootNode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1041,
                          "src": "17222:8:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 2363,
                          "name": "ens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1039,
                          "src": "17212:3:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ENS_$436",
                            "typeString": "contract ENS"
                          }
                        },
                        "id": 2364,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 405,
                        "src": "17212:9:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                          "typeString": "function (bytes32) view external returns (address)"
                        }
                      },
                      "id": 2366,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17212:19:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2368,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3060,
                          "src": "17243:4:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_HashRegistrar_$2505",
                            "typeString": "contract HashRegistrar"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_HashRegistrar_$2505",
                            "typeString": "contract HashRegistrar"
                          }
                        ],
                        "id": 2367,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "17235:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2369,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17235:13:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "17212:36:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2379,
                  "nodeType": "IfStatement",
                  "src": "17208:101:6",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2374,
                          "name": "rootNode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1041,
                          "src": "17282:8:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 2375,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2358,
                          "src": "17292:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 2376,
                          "name": "_newOwner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2360,
                          "src": "17299:9:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 2371,
                          "name": "ens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1039,
                          "src": "17262:3:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ENS_$436",
                            "typeString": "contract ENS"
                          }
                        },
                        "id": 2373,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "setSubnodeOwner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 370,
                        "src": "17262:19:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_bytes32_$",
                          "typeString": "function (bytes32,bytes32,address) external returns (bytes32)"
                        }
                      },
                      "id": 2377,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17262:47:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 2378,
                    "nodeType": "ExpressionStatement",
                    "src": "17262:47:6"
                  }
                }
              ]
            },
            "documentation": "@dev Assign the owner in ENS, if we're still the registrar\n     * @param _hash hash to change owner\n@param _newOwner new owner to transfer to",
            "id": 2381,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "trySetSubnodeOwner",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2361,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2358,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2381,
                  "src": "17155:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2357,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17155:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2360,
                  "name": "_newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 2381,
                  "src": "17170:17:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2359,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "17170:7:6",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17154:34:6"
            },
            "returnParameters": {
              "id": 2362,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "17198:0:6"
            },
            "scope": 2505,
            "src": "17127:189:6",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2398,
              "nodeType": "Block",
              "src": "17584:83:6",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2392,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2390,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2383,
                      "src": "17598:1:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2391,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2385,
                      "src": "17602:1:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "17598:5:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2395,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2385,
                      "src": "17659:1:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 2389,
                    "id": 2396,
                    "nodeType": "Return",
                    "src": "17652:8:6"
                  },
                  "id": 2397,
                  "nodeType": "IfStatement",
                  "src": "17594:66:6",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2393,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2383,
                      "src": "17624:1:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 2389,
                    "id": 2394,
                    "nodeType": "Return",
                    "src": "17617:8:6"
                  }
                }
              ]
            },
            "documentation": "@dev Returns the maximum of two unsigned integers\n     * @param a A number to compare\n@param b A number to compare\n@return The maximum of two unsigned integers",
            "id": 2399,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "max",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2386,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2383,
                  "name": "a",
                  "nodeType": "VariableDeclaration",
                  "scope": 2399,
                  "src": "17539:6:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2382,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17539:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2385,
                  "name": "b",
                  "nodeType": "VariableDeclaration",
                  "scope": 2399,
                  "src": "17547:6:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2384,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17547:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17538:16:6"
            },
            "returnParameters": {
              "id": 2389,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2388,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2399,
                  "src": "17578:4:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2387,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17578:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17577:6:6"
            },
            "scope": 2505,
            "src": "17526:141:6",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2416,
              "nodeType": "Block",
              "src": "17935:83:6",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2410,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2408,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2401,
                      "src": "17949:1:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2409,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2403,
                      "src": "17953:1:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "17949:5:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2413,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2403,
                      "src": "18010:1:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 2407,
                    "id": 2414,
                    "nodeType": "Return",
                    "src": "18003:8:6"
                  },
                  "id": 2415,
                  "nodeType": "IfStatement",
                  "src": "17945:66:6",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2411,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2401,
                      "src": "17975:1:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 2407,
                    "id": 2412,
                    "nodeType": "Return",
                    "src": "17968:8:6"
                  }
                }
              ]
            },
            "documentation": "@dev Returns the minimum of two unsigned integers\n     * @param a A number to compare\n@param b A number to compare\n@return The minimum of two unsigned integers",
            "id": 2417,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "min",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2404,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2401,
                  "name": "a",
                  "nodeType": "VariableDeclaration",
                  "scope": 2417,
                  "src": "17890:6:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2400,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17890:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2403,
                  "name": "b",
                  "nodeType": "VariableDeclaration",
                  "scope": 2417,
                  "src": "17898:6:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2402,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17898:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17889:16:6"
            },
            "returnParameters": {
              "id": 2407,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2406,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2417,
                  "src": "17929:4:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2405,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17929:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17928:6:6"
            },
            "scope": 2505,
            "src": "17877:141:6",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2503,
              "nodeType": "Block",
              "src": "18256:779:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2424,
                    "name": "s",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2419,
                    "src": "18266:1:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "id": 2425,
                  "nodeType": "ExpressionStatement",
                  "src": "18266:1:6"
                },
                {
                  "assignments": [
                    2427
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2427,
                      "name": "ptr",
                      "nodeType": "VariableDeclaration",
                      "scope": 2503,
                      "src": "18384:8:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2426,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "18384:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2428,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18384:8:6"
                },
                {
                  "assignments": [
                    2430
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2430,
                      "name": "end",
                      "nodeType": "VariableDeclaration",
                      "scope": 2503,
                      "src": "18402:8:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2429,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "18402:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2431,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18402:8:6"
                },
                {
                  "externalReferences": [
                    {
                      "ptr": {
                        "declaration": 2427,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "18443:3:6",
                        "valueSize": 1
                      }
                    },
                    {
                      "s": {
                        "declaration": 2419,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "18454:1:6",
                        "valueSize": 1
                      }
                    },
                    {
                      "end": {
                        "declaration": 2430,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "18472:3:6",
                        "valueSize": 1
                      }
                    },
                    {
                      "s": {
                        "declaration": 2419,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "18489:1:6",
                        "valueSize": 1
                      }
                    },
                    {
                      "ptr": {
                        "declaration": 2427,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "18493:3:6",
                        "valueSize": 1
                      }
                    }
                  ],
                  "id": 2432,
                  "nodeType": "InlineAssembly",
                  "operations": "{\n    ptr := add(s, 1)\n    end := add(mload(s), ptr)\n}",
                  "src": "18420:87:6"
                },
                {
                  "assignments": [
                    2434
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2434,
                      "name": "len",
                      "nodeType": "VariableDeclaration",
                      "scope": 2503,
                      "src": "18516:8:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2433,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "18516:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2436,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 2435,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "18527:1:6",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18516:12:6"
                },
                {
                  "body": {
                    "id": 2499,
                    "nodeType": "Block",
                    "src": "18566:443:6",
                    "statements": [
                      {
                        "assignments": [
                          2446
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 2446,
                            "name": "b",
                            "nodeType": "VariableDeclaration",
                            "scope": 2499,
                            "src": "18580:7:6",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "typeName": {
                              "id": 2445,
                              "name": "uint8",
                              "nodeType": "ElementaryTypeName",
                              "src": "18580:5:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 2447,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "18580:7:6"
                      },
                      {
                        "externalReferences": [
                          {
                            "b": {
                              "declaration": 2446,
                              "isOffset": false,
                              "isSlot": false,
                              "src": "18612:1:6",
                              "valueSize": 1
                            }
                          },
                          {
                            "ptr": {
                              "declaration": 2427,
                              "isOffset": false,
                              "isSlot": false,
                              "src": "18627:3:6",
                              "valueSize": 1
                            }
                          }
                        ],
                        "id": 2448,
                        "nodeType": "InlineAssembly",
                        "operations": "{ b := and(mload(ptr), 0xFF) }",
                        "src": "18601:39:6"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 2451,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 2449,
                            "name": "b",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2446,
                            "src": "18657:1:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30783830",
                            "id": 2450,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "18661:4:6",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            "value": "0x80"
                          },
                          "src": "18657:8:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 2459,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 2457,
                              "name": "b",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2446,
                              "src": "18718:1:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30784530",
                              "id": 2458,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "18722:4:6",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_224_by_1",
                                "typeString": "int_const 224"
                              },
                              "value": "0xE0"
                            },
                            "src": "18718:8:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "condition": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              },
                              "id": 2467,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 2465,
                                "name": "b",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2446,
                                "src": "18779:1:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "30784630",
                                "id": 2466,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "18783:4:6",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_240_by_1",
                                  "typeString": "int_const 240"
                                },
                                "value": "0xF0"
                              },
                              "src": "18779:8:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "id": 2475,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 2473,
                                  "name": "b",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2446,
                                  "src": "18840:1:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30784638",
                                  "id": 2474,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "18844:4:6",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_248_by_1",
                                    "typeString": "int_const 248"
                                  },
                                  "value": "0xF8"
                                },
                                "src": "18840:8:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": {
                                "condition": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 2483,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "id": 2481,
                                    "name": "b",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2446,
                                    "src": "18901:1:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "30784643",
                                    "id": 2482,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "18905:4:6",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_252_by_1",
                                      "typeString": "int_const 252"
                                    },
                                    "value": "0xFC"
                                  },
                                  "src": "18901:8:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "falseBody": {
                                  "id": 2493,
                                  "nodeType": "Block",
                                  "src": "18958:41:6",
                                  "statements": [
                                    {
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2491,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                          "argumentTypes": null,
                                          "id": 2489,
                                          "name": "ptr",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 2427,
                                          "src": "18976:3:6",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "+=",
                                        "rightHandSide": {
                                          "argumentTypes": null,
                                          "hexValue": "36",
                                          "id": 2490,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "18983:1:6",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_6_by_1",
                                            "typeString": "int_const 6"
                                          },
                                          "value": "6"
                                        },
                                        "src": "18976:8:6",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 2492,
                                      "nodeType": "ExpressionStatement",
                                      "src": "18976:8:6"
                                    }
                                  ]
                                },
                                "id": 2494,
                                "nodeType": "IfStatement",
                                "src": "18897:102:6",
                                "trueBody": {
                                  "id": 2488,
                                  "nodeType": "Block",
                                  "src": "18911:41:6",
                                  "statements": [
                                    {
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2486,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                          "argumentTypes": null,
                                          "id": 2484,
                                          "name": "ptr",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 2427,
                                          "src": "18929:3:6",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "+=",
                                        "rightHandSide": {
                                          "argumentTypes": null,
                                          "hexValue": "35",
                                          "id": 2485,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "18936:1:6",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_5_by_1",
                                            "typeString": "int_const 5"
                                          },
                                          "value": "5"
                                        },
                                        "src": "18929:8:6",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 2487,
                                      "nodeType": "ExpressionStatement",
                                      "src": "18929:8:6"
                                    }
                                  ]
                                }
                              },
                              "id": 2495,
                              "nodeType": "IfStatement",
                              "src": "18836:163:6",
                              "trueBody": {
                                "id": 2480,
                                "nodeType": "Block",
                                "src": "18850:41:6",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2478,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "id": 2476,
                                        "name": "ptr",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 2427,
                                        "src": "18868:3:6",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "+=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "hexValue": "34",
                                        "id": 2477,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "18875:1:6",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_4_by_1",
                                          "typeString": "int_const 4"
                                        },
                                        "value": "4"
                                      },
                                      "src": "18868:8:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 2479,
                                    "nodeType": "ExpressionStatement",
                                    "src": "18868:8:6"
                                  }
                                ]
                              }
                            },
                            "id": 2496,
                            "nodeType": "IfStatement",
                            "src": "18775:224:6",
                            "trueBody": {
                              "id": 2472,
                              "nodeType": "Block",
                              "src": "18789:41:6",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2470,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "argumentTypes": null,
                                      "id": 2468,
                                      "name": "ptr",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2427,
                                      "src": "18807:3:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "+=",
                                    "rightHandSide": {
                                      "argumentTypes": null,
                                      "hexValue": "33",
                                      "id": 2469,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "18814:1:6",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_3_by_1",
                                        "typeString": "int_const 3"
                                      },
                                      "value": "3"
                                    },
                                    "src": "18807:8:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 2471,
                                  "nodeType": "ExpressionStatement",
                                  "src": "18807:8:6"
                                }
                              ]
                            }
                          },
                          "id": 2497,
                          "nodeType": "IfStatement",
                          "src": "18714:285:6",
                          "trueBody": {
                            "id": 2464,
                            "nodeType": "Block",
                            "src": "18728:41:6",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2462,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "id": 2460,
                                    "name": "ptr",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2427,
                                    "src": "18746:3:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "+=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "hexValue": "32",
                                    "id": 2461,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "18753:1:6",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    },
                                    "value": "2"
                                  },
                                  "src": "18746:8:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 2463,
                                "nodeType": "ExpressionStatement",
                                "src": "18746:8:6"
                              }
                            ]
                          }
                        },
                        "id": 2498,
                        "nodeType": "IfStatement",
                        "src": "18653:346:6",
                        "trueBody": {
                          "id": 2456,
                          "nodeType": "Block",
                          "src": "18667:41:6",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 2454,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 2452,
                                  "name": "ptr",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2427,
                                  "src": "18685:3:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "+=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 2453,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "18692:1:6",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "18685:8:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 2455,
                              "nodeType": "ExpressionStatement",
                              "src": "18685:8:6"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2441,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2439,
                      "name": "ptr",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2427,
                      "src": "18548:3:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2440,
                      "name": "end",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2430,
                      "src": "18554:3:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "18548:9:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2500,
                  "initializationExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2437,
                      "name": "len",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2434,
                      "src": "18543:3:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2438,
                    "nodeType": "ExpressionStatement",
                    "src": "18543:3:6"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2443,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "18559:5:6",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 2442,
                        "name": "len",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2434,
                        "src": "18559:3:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2444,
                    "nodeType": "ExpressionStatement",
                    "src": "18559:5:6"
                  },
                  "nodeType": "ForStatement",
                  "src": "18538:471:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2501,
                    "name": "len",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2434,
                    "src": "19025:3:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2423,
                  "id": 2502,
                  "nodeType": "Return",
                  "src": "19018:10:6"
                }
              ]
            },
            "documentation": "@dev Returns the length of a given string\n     * @param s The string to measure the length of\n@return The length of the input string",
            "id": 2504,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "strlen",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2420,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2419,
                  "name": "s",
                  "nodeType": "VariableDeclaration",
                  "scope": 2504,
                  "src": "18210:15:6",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 2418,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "18210:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18209:17:6"
            },
            "returnParameters": {
              "id": 2423,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2422,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2504,
                  "src": "18250:4:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2421,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "18250:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18249:6:6"
            },
            "scope": 2505,
            "src": "18194:841:6",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          }
        ],
        "scope": 2506,
        "src": "586:18452:6"
      }
    ],
    "src": "0:19039:6"
  },
  "legacyAST": {
    "absolutePath": "/Users/makoto/work/ens/ens/contracts/HashRegistrar.sol",
    "exportedSymbols": {
      "HashRegistrar": [
        2505
      ]
    },
    "id": 2506,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1032,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:6"
      },
      {
        "absolutePath": "/Users/makoto/work/ens/ens/contracts/ENS.sol",
        "file": "./ENS.sol",
        "id": 1033,
        "nodeType": "ImportDirective",
        "scope": 2506,
        "sourceUnit": 437,
        "src": "388:19:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/makoto/work/ens/ens/contracts/DeedImplementation.sol",
        "file": "./DeedImplementation.sol",
        "id": 1034,
        "nodeType": "ImportDirective",
        "scope": 2506,
        "sourceUnit": 300,
        "src": "408:34:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/makoto/work/ens/ens/contracts/Registrar.sol",
        "file": "./Registrar.sol",
        "id": 1035,
        "nodeType": "ImportDirective",
        "scope": 2506,
        "sourceUnit": 2728,
        "src": "443:25:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1036,
              "name": "Registrar",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2727,
              "src": "612:9:6",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Registrar_$2727",
                "typeString": "contract Registrar"
              }
            },
            "id": 1037,
            "nodeType": "InheritanceSpecifier",
            "src": "612:9:6"
          }
        ],
        "contractDependencies": [
          299,
          2727
        ],
        "contractKind": "contract",
        "documentation": "@title Registrar\n@dev The registrar handles the auction process for each subnode of the node it owns.",
        "fullyImplemented": true,
        "id": 2505,
        "linearizedBaseContracts": [
          2505,
          2727
        ],
        "name": "HashRegistrar",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 1039,
            "name": "ens",
            "nodeType": "VariableDeclaration",
            "scope": 2505,
            "src": "628:14:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_ENS_$436",
              "typeString": "contract ENS"
            },
            "typeName": {
              "contractScope": null,
              "id": 1038,
              "name": "ENS",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 436,
              "src": "628:3:6",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ENS_$436",
                "typeString": "contract ENS"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1041,
            "name": "rootNode",
            "nodeType": "VariableDeclaration",
            "scope": 2505,
            "src": "648:23:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 1040,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "648:7:6",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 1045,
            "name": "_entries",
            "nodeType": "VariableDeclaration",
            "scope": 2505,
            "src": "678:35:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$1074_storage_$",
              "typeString": "mapping(bytes32 => struct HashRegistrar.Entry)"
            },
            "typeName": {
              "id": 1044,
              "keyType": {
                "id": 1042,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "687:7:6",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "678:26:6",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$1074_storage_$",
                "typeString": "mapping(bytes32 => struct HashRegistrar.Entry)"
              },
              "valueType": {
                "contractScope": null,
                "id": 1043,
                "name": "Entry",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 1074,
                "src": "698:5:6",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                  "typeString": "struct HashRegistrar.Entry"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 1051,
            "name": "sealedBids",
            "nodeType": "VariableDeclaration",
            "scope": 2505,
            "src": "719:64:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$47_$_$",
              "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
            },
            "typeName": {
              "id": 1050,
              "keyType": {
                "id": 1046,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "728:7:6",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "719:46:6",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$47_$_$",
                "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
              },
              "valueType": {
                "id": 1049,
                "keyType": {
                  "id": 1047,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "748:7:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "nodeType": "Mapping",
                "src": "739:25:6",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$47_$",
                  "typeString": "mapping(bytes32 => contract Deed)"
                },
                "valueType": {
                  "contractScope": null,
                  "id": 1048,
                  "name": "Deed",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 47,
                  "src": "759:4:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Deed_$47",
                    "typeString": "contract Deed"
                  }
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1054,
            "name": "totalAuctionLength",
            "nodeType": "VariableDeclaration",
            "scope": 2505,
            "src": "790:43:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 1052,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "790:6:6",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "35",
              "id": 1053,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "827:6:6",
              "subdenomination": "days",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_432000_by_1",
                "typeString": "int_const 432000"
              },
              "value": "5"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 1057,
            "name": "revealPeriod",
            "nodeType": "VariableDeclaration",
            "scope": 2505,
            "src": "839:39:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 1055,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "839:6:6",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "3438",
              "id": 1056,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "870:8:6",
              "subdenomination": "hours",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_172800_by_1",
                "typeString": "int_const 172800"
              },
              "value": "48"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 1060,
            "name": "launchLength",
            "nodeType": "VariableDeclaration",
            "scope": 2505,
            "src": "884:45:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 1058,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "884:6:6",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "38",
              "id": 1059,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "922:7:6",
              "subdenomination": "weeks",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_4838400_by_1",
                "typeString": "int_const 4838400"
              },
              "value": "8"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1063,
            "name": "minPrice",
            "nodeType": "VariableDeclaration",
            "scope": 2505,
            "src": "936:35:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1061,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "936:4:6",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "302e3031",
              "id": 1062,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "961:10:6",
              "subdenomination": "ether",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_10000000000000000_by_1",
                "typeString": "int_const 10000000000000000"
              },
              "value": "0.01"
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 1065,
            "name": "registryStarted",
            "nodeType": "VariableDeclaration",
            "scope": 2505,
            "src": "977:27:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 1064,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "977:4:6",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "canonicalName": "HashRegistrar.Entry",
            "id": 1074,
            "members": [
              {
                "constant": false,
                "id": 1067,
                "name": "deed",
                "nodeType": "VariableDeclaration",
                "scope": 1074,
                "src": "1034:9:6",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_Deed_$47",
                  "typeString": "contract Deed"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 1066,
                  "name": "Deed",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 47,
                  "src": "1034:4:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Deed_$47",
                    "typeString": "contract Deed"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1069,
                "name": "registrationDate",
                "nodeType": "VariableDeclaration",
                "scope": 1074,
                "src": "1053:21:6",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1068,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1053:4:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1071,
                "name": "value",
                "nodeType": "VariableDeclaration",
                "scope": 1074,
                "src": "1084:10:6",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1070,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1084:4:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1073,
                "name": "highestBid",
                "nodeType": "VariableDeclaration",
                "scope": 1074,
                "src": "1104:15:6",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1072,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1104:4:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Entry",
            "nodeType": "StructDefinition",
            "scope": 2505,
            "src": "1011:115:6",
            "visibility": "public"
          },
          {
            "body": {
              "id": 1089,
              "nodeType": "Block",
              "src": "1177:59:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Mode_$2572",
                          "typeString": "enum Registrar.Mode"
                        },
                        "id": 1085,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1082,
                              "name": "_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1076,
                              "src": "1201:5:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 1081,
                            "name": "state",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2030,
                            "src": "1195:5:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$2572_$",
                              "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                            }
                          },
                          "id": 1083,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1195:12:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$2572",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 1084,
                          "name": "_state",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1078,
                          "src": "1211:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$2572",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "src": "1195:22:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1080,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3035,
                        3036
                      ],
                      "referencedDeclaration": 3035,
                      "src": "1187:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1086,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1187:31:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1087,
                  "nodeType": "ExpressionStatement",
                  "src": "1187:31:6"
                },
                {
                  "id": 1088,
                  "nodeType": "PlaceholderStatement",
                  "src": "1228:1:6"
                }
              ]
            },
            "documentation": null,
            "id": 1090,
            "name": "inState",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1079,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1076,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1090,
                  "src": "1149:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1075,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1149:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1078,
                  "name": "_state",
                  "nodeType": "VariableDeclaration",
                  "scope": 1090,
                  "src": "1164:11:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mode_$2572",
                    "typeString": "enum Registrar.Mode"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1077,
                    "name": "Mode",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2572,
                    "src": "1164:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$2572",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1148:28:6"
            },
            "src": "1132:104:6",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1114,
              "nodeType": "Block",
              "src": "1276:109:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1110,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_enum$_Mode_$2572",
                            "typeString": "enum Registrar.Mode"
                          },
                          "id": 1100,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1096,
                                "name": "_hash",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1092,
                                "src": "1300:5:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 1095,
                              "name": "state",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2030,
                              "src": "1294:5:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$2572_$",
                                "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                              }
                            },
                            "id": 1097,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1294:12:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Mode_$2572",
                              "typeString": "enum Registrar.Mode"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1098,
                              "name": "Mode",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2572,
                              "src": "1310:4:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Mode_$2572_$",
                                "typeString": "type(enum Registrar.Mode)"
                              }
                            },
                            "id": 1099,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Owned",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1310:10:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Mode_$2572",
                              "typeString": "enum Registrar.Mode"
                            }
                          },
                          "src": "1294:26:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 1109,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1101,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3032,
                              "src": "1324:3:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 1102,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1324:10:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 1103,
                                    "name": "_entries",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1045,
                                    "src": "1338:8:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$1074_storage_$",
                                      "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                                    }
                                  },
                                  "id": 1105,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 1104,
                                    "name": "_hash",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1092,
                                    "src": "1347:5:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "1338:15:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Entry_$1074_storage",
                                    "typeString": "struct HashRegistrar.Entry storage ref"
                                  }
                                },
                                "id": 1106,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "deed",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1067,
                                "src": "1338:20:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$47",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 1107,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "owner",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 31,
                              "src": "1338:26:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                                "typeString": "function () view external returns (address)"
                              }
                            },
                            "id": 1108,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1338:28:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "1324:42:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1294:72:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1094,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3035,
                        3036
                      ],
                      "referencedDeclaration": 3035,
                      "src": "1286:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1111,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1286:81:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1112,
                  "nodeType": "ExpressionStatement",
                  "src": "1286:81:6"
                },
                {
                  "id": 1113,
                  "nodeType": "PlaceholderStatement",
                  "src": "1377:1:6"
                }
              ]
            },
            "documentation": null,
            "id": 1115,
            "name": "onlyOwner",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1093,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1092,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1115,
                  "src": "1261:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1091,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1261:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1260:15:6"
            },
            "src": "1242:143:6",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1144,
              "nodeType": "Block",
              "src": "1415:146:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1140,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 1131,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1120,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 1118,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3034,
                              "src": "1433:3:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 1119,
                              "name": "registryStarted",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1065,
                              "src": "1440:15:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1433:22:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1130,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 1121,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3034,
                              "src": "1459:3:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 1129,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 1122,
                                "name": "registryStarted",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1065,
                                "src": "1466:15:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "+",
                              "rightExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_rational_126144000_by_1",
                                  "typeString": "int_const 126144000"
                                },
                                "id": 1128,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_rational_1460_by_1",
                                        "typeString": "int_const 1460"
                                      },
                                      "id": 1125,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "333635",
                                        "id": 1123,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1485:3:6",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_365_by_1",
                                          "typeString": "int_const 365"
                                        },
                                        "value": "365"
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "*",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "34",
                                        "id": 1124,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1491:1:6",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_4_by_1",
                                          "typeString": "int_const 4"
                                        },
                                        "value": "4"
                                      },
                                      "src": "1485:7:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1460_by_1",
                                        "typeString": "int_const 1460"
                                      }
                                    }
                                  ],
                                  "id": 1126,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "1484:9:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1460_by_1",
                                    "typeString": "int_const 1460"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 1127,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "1496:6:6",
                                  "subdenomination": "days",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_86400_by_1",
                                    "typeString": "int_const 86400"
                                  },
                                  "value": "1"
                                },
                                "src": "1484:18:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_126144000_by_1",
                                  "typeString": "int_const 126144000"
                                }
                              },
                              "src": "1466:36:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1459:43:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "1433:69:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 1139,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1134,
                                "name": "rootNode",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1041,
                                "src": "1516:8:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1132,
                                "name": "ens",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1039,
                                "src": "1506:3:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ENS_$436",
                                  "typeString": "contract ENS"
                                }
                              },
                              "id": 1133,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "owner",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 405,
                              "src": "1506:9:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                                "typeString": "function (bytes32) view external returns (address)"
                              }
                            },
                            "id": 1135,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1506:19:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1137,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3060,
                                "src": "1537:4:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_HashRegistrar_$2505",
                                  "typeString": "contract HashRegistrar"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_HashRegistrar_$2505",
                                  "typeString": "contract HashRegistrar"
                                }
                              ],
                              "id": 1136,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "1529:7:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 1138,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1529:13:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "1506:36:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1433:109:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1117,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3035,
                        3036
                      ],
                      "referencedDeclaration": 3035,
                      "src": "1425:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1141,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1425:118:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1142,
                  "nodeType": "ExpressionStatement",
                  "src": "1425:118:6"
                },
                {
                  "id": 1143,
                  "nodeType": "PlaceholderStatement",
                  "src": "1553:1:6"
                }
              ]
            },
            "documentation": null,
            "id": 1145,
            "name": "registryOpen",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 1116,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1412:2:6"
            },
            "src": "1391:170:6",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1171,
              "nodeType": "Block",
              "src": "1844:118:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1156,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1154,
                      "name": "ens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1039,
                      "src": "1854:3:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ENS_$436",
                        "typeString": "contract ENS"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1155,
                      "name": "_ens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1147,
                      "src": "1860:4:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ENS_$436",
                        "typeString": "contract ENS"
                      }
                    },
                    "src": "1854:10:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ENS_$436",
                      "typeString": "contract ENS"
                    }
                  },
                  "id": 1157,
                  "nodeType": "ExpressionStatement",
                  "src": "1854:10:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1160,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1158,
                      "name": "rootNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1041,
                      "src": "1874:8:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1159,
                      "name": "_rootNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1149,
                      "src": "1885:9:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "1874:20:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 1161,
                  "nodeType": "ExpressionStatement",
                  "src": "1874:20:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1169,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1162,
                      "name": "registryStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1065,
                      "src": "1904:15:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1165,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1163,
                          "name": "_startDate",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1151,
                          "src": "1922:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1164,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1935:1:6",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "1922:14:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseExpression": {
                        "argumentTypes": null,
                        "id": 1167,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3034,
                        "src": "1952:3:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 1168,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "Conditional",
                      "src": "1922:33:6",
                      "trueExpression": {
                        "argumentTypes": null,
                        "id": 1166,
                        "name": "_startDate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1151,
                        "src": "1939:10:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1904:51:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1170,
                  "nodeType": "ExpressionStatement",
                  "src": "1904:51:6"
                }
              ]
            },
            "documentation": "@dev Constructs a new Registrar, with the provided address as the owner of the root node.\n     * @param _ens The address of the ENS\n@param _rootNode The hash of the rootnode.",
            "id": 1172,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1152,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1147,
                  "name": "_ens",
                  "nodeType": "VariableDeclaration",
                  "scope": 1172,
                  "src": "1791:8:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ENS_$436",
                    "typeString": "contract ENS"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1146,
                    "name": "ENS",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 436,
                    "src": "1791:3:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ENS_$436",
                      "typeString": "contract ENS"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1149,
                  "name": "_rootNode",
                  "nodeType": "VariableDeclaration",
                  "scope": 1172,
                  "src": "1801:17:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1148,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1801:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1151,
                  "name": "_startDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 1172,
                  "src": "1820:15:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1150,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1820:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1790:46:6"
            },
            "returnParameters": {
              "id": 1153,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1844:0:6"
            },
            "scope": 2505,
            "src": "1779:183:6",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1181,
              "nodeType": "Block",
              "src": "2140:37:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1178,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1174,
                        "src": "2164:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1177,
                      "name": "_startAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2206,
                      "src": "2150:13:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 1179,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2150:20:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1180,
                  "nodeType": "ExpressionStatement",
                  "src": "2150:20:6"
                }
              ]
            },
            "documentation": "@dev Start an auction for an available hash\n     * @param _hash The hash to start an auction on",
            "id": 1182,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "startAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1175,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1174,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1182,
                  "src": "2116:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1173,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2116:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2115:15:6"
            },
            "returnParameters": {
              "id": 1176,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2140:0:6"
            },
            "scope": 2505,
            "src": "2094:83:6",
            "stateMutability": "nonpayable",
            "superFunction": 2634,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1192,
              "nodeType": "Block",
              "src": "2831:40:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1189,
                        "name": "_hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1185,
                        "src": "2856:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      ],
                      "id": 1188,
                      "name": "_startAuctions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2232,
                      "src": "2841:14:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (bytes32[] memory)"
                      }
                    },
                    "id": 1190,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2841:23:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1191,
                  "nodeType": "ExpressionStatement",
                  "src": "2841:23:6"
                }
              ]
            },
            "documentation": "@dev Start multiple auctions for better anonymity\n     * Anyone can start an auction by sending an array of hashes that they want to bid for.\nArrays are sent so that someone can open up an auction for X dummy hashes when they\nare only really interested in bidding for one. This will increase the cost for an\nattacker to simply bid blindly on all new auctions. Dummy auctions that are\nopen but not bid on are closed after a week.\n     * @param _hashes An array of hashes, at least one of which you presumably want to bid on",
            "id": 1193,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "startAuctions",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1186,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1185,
                  "name": "_hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 1193,
                  "src": "2794:26:6",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1183,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "2794:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 1184,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2794:9:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2793:28:6"
            },
            "returnParameters": {
              "id": 1187,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2831:0:6"
            },
            "scope": 2505,
            "src": "2771:100:6",
            "stateMutability": "nonpayable",
            "superFunction": 2640,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1202,
              "nodeType": "Block",
              "src": "3779:35:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1199,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1195,
                        "src": "3797:9:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1198,
                      "name": "_newBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2290,
                      "src": "3789:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 1200,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3789:18:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1201,
                  "nodeType": "ExpressionStatement",
                  "src": "3789:18:6"
                }
              ]
            },
            "documentation": "@dev Submit a new sealed bid on a desired hash in a blind auction\n     * Bids are sent by sending a message to the main contract with a hash and an amount. The hash\ncontains information about the bid, including the bidded hash, the bid amount, and a random\nsalt. Bids are not tied to any one auction until they are revealed. The value of the bid\nitself can be masqueraded by sending more than the value of your actual bid. This is\nfollowed by a 48h reveal period. Bids revealed after this period will be burned and the ether unrecoverable.\nSince this is an auction, it is expected that most public hashes, like known domains and common dictionary\nwords, will have multiple bidders pushing the price up.\n     * @param sealedBid A sealedBid, created by the shaBid function",
            "id": 1203,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "newBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1196,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1195,
                  "name": "sealedBid",
                  "nodeType": "VariableDeclaration",
                  "scope": 1203,
                  "src": "3743:17:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1194,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3743:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3742:19:6"
            },
            "returnParameters": {
              "id": 1197,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3779:0:6"
            },
            "scope": 2505,
            "src": "3727:87:6",
            "stateMutability": "payable",
            "superFunction": 2645,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1219,
              "nodeType": "Block",
              "src": "4248:67:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1212,
                        "name": "hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1206,
                        "src": "4273:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      ],
                      "id": 1211,
                      "name": "_startAuctions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2232,
                      "src": "4258:14:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (bytes32[] memory)"
                      }
                    },
                    "id": 1213,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4258:22:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1214,
                  "nodeType": "ExpressionStatement",
                  "src": "4258:22:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1216,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1208,
                        "src": "4298:9:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1215,
                      "name": "_newBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2290,
                      "src": "4290:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 1217,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4290:18:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1218,
                  "nodeType": "ExpressionStatement",
                  "src": "4290:18:6"
                }
              ]
            },
            "documentation": "@dev Start a set of auctions and bid on one of them\n     * This method functions identically to calling `startAuctions` followed by `newBid`,\nbut all in one transaction.\n     * @param hashes A list of hashes to start auctions on.\n@param sealedBid A sealed bid for one of the auctions.",
            "id": 1220,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "startAuctionsAndBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1209,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1206,
                  "name": "hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 1220,
                  "src": "4185:25:6",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1204,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "4185:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 1205,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "4185:9:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1208,
                  "name": "sealedBid",
                  "nodeType": "VariableDeclaration",
                  "scope": 1220,
                  "src": "4212:17:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1207,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4212:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4184:46:6"
            },
            "returnParameters": {
              "id": 1210,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4248:0:6"
            },
            "scope": 2505,
            "src": "4156:159:6",
            "stateMutability": "payable",
            "superFunction": 2653,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1451,
              "nodeType": "Block",
              "src": "4618:1904:6",
              "statements": [
                {
                  "assignments": [
                    1230
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1230,
                      "name": "seal",
                      "nodeType": "VariableDeclaration",
                      "scope": 1451,
                      "src": "4628:12:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1229,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4628:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1238,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1232,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1222,
                        "src": "4650:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1233,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3032,
                          "src": "4657:3:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1234,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4657:10:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1235,
                        "name": "_value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1224,
                        "src": "4669:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1236,
                        "name": "_salt",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1226,
                        "src": "4677:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1231,
                      "name": "shaBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2093,
                      "src": "4643:6:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$",
                        "typeString": "function (bytes32,address,uint256,bytes32) pure returns (bytes32)"
                      }
                    },
                    "id": 1237,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4643:40:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4628:55:6"
                },
                {
                  "assignments": [
                    1240
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1240,
                      "name": "bid",
                      "nodeType": "VariableDeclaration",
                      "scope": 1451,
                      "src": "4693:8:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1239,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 47,
                        "src": "4693:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$47",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1247,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1241,
                        "name": "sealedBids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1051,
                        "src": "4704:10:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$47_$_$",
                          "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                        }
                      },
                      "id": 1244,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1242,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3032,
                          "src": "4715:3:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1243,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4715:10:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4704:22:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$47_$",
                        "typeString": "mapping(bytes32 => contract Deed)"
                      }
                    },
                    "id": 1246,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1245,
                      "name": "seal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1230,
                      "src": "4727:4:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4704:28:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$47",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4693:39:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 1255,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1250,
                              "name": "bid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1240,
                              "src": "4758:3:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$47",
                                "typeString": "contract Deed"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_Deed_$47",
                                "typeString": "contract Deed"
                              }
                            ],
                            "id": 1249,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "4750:7:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 1251,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4750:12:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 1253,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4774:3:6",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 1252,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "4766:7:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 1254,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4766:12:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "src": "4750:28:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1248,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3035,
                        3036
                      ],
                      "referencedDeclaration": 3035,
                      "src": "4742:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1256,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4742:37:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1257,
                  "nodeType": "ExpressionStatement",
                  "src": "4742:37:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1269,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1258,
                          "name": "sealedBids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1051,
                          "src": "4790:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$47_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                          }
                        },
                        "id": 1262,
                        "indexExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1259,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3032,
                            "src": "4801:3:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 1260,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4801:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4790:22:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$47_$",
                          "typeString": "mapping(bytes32 => contract Deed)"
                        }
                      },
                      "id": 1263,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1261,
                        "name": "seal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1230,
                        "src": "4813:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4790:28:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 1266,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4834:3:6",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 1265,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "4826:7:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 1267,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4826:12:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        ],
                        "id": 1264,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 47,
                        "src": "4821:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$47_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 1268,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4821:18:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "4790:49:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$47",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 1270,
                  "nodeType": "ExpressionStatement",
                  "src": "4790:49:6"
                },
                {
                  "assignments": [
                    1272
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1272,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1451,
                      "src": "4849:15:6",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1271,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1074,
                        "src": "4849:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1276,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1273,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1045,
                      "src": "4867:8:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$1074_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1275,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1274,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1222,
                      "src": "4876:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4867:15:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$1074_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4849:33:6"
                },
                {
                  "assignments": [
                    1278
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1278,
                      "name": "value",
                      "nodeType": "VariableDeclaration",
                      "scope": 1451,
                      "src": "4892:10:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1277,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4892:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1285,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1280,
                        "name": "_value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1224,
                        "src": "4909:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1281,
                            "name": "bid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1240,
                            "src": "4917:3:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$47",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 1282,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 41,
                          "src": "4917:9:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                            "typeString": "function () view external returns (uint256)"
                          }
                        },
                        "id": 1283,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4917:11:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1279,
                      "name": "min",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2417,
                      "src": "4905:3:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 1284,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4905:24:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4892:37:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1289,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1278,
                        "src": "4954:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 1290,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4961:4:6",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1286,
                        "name": "bid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1240,
                        "src": "4939:3:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$47",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 1288,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 18,
                      "src": "4939:14:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (uint256,bool) external"
                      }
                    },
                    "id": 1291,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4939:27:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1292,
                  "nodeType": "ExpressionStatement",
                  "src": "4939:27:6"
                },
                {
                  "assignments": [
                    1294
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1294,
                      "name": "auctionState",
                      "nodeType": "VariableDeclaration",
                      "scope": 1451,
                      "src": "4977:17:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$2572",
                        "typeString": "enum Registrar.Mode"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1293,
                        "name": "Mode",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2572,
                        "src": "4977:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$2572",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1298,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1296,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1222,
                        "src": "5003:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1295,
                      "name": "state",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2030,
                      "src": "4997:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$2572_$",
                        "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                      }
                    },
                    "id": 1297,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4997:12:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$2572",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4977:32:6"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$2572",
                      "typeString": "enum Registrar.Mode"
                    },
                    "id": 1302,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 1299,
                      "name": "auctionState",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1294,
                      "src": "5023:12:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$2572",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1300,
                        "name": "Mode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2572,
                        "src": "5039:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Mode_$2572_$",
                          "typeString": "type(enum Registrar.Mode)"
                        }
                      },
                      "id": 1301,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Owned",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "5039:10:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$2572",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "src": "5023:26:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_Mode_$2572",
                        "typeString": "enum Registrar.Mode"
                      },
                      "id": 1321,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 1318,
                        "name": "auctionState",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1294,
                        "src": "5226:12:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$2572",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1319,
                          "name": "Mode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2572,
                          "src": "5242:4:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Mode_$2572_$",
                            "typeString": "type(enum Registrar.Mode)"
                          }
                        },
                        "id": 1320,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "Reveal",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "5242:11:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$2572",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "src": "5226:27:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1337,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1328,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1326,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1278,
                            "src": "5327:5:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 1327,
                            "name": "minPrice",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1063,
                            "src": "5335:8:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5327:16:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1336,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1329,
                                "name": "bid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1240,
                                "src": "5347:3:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$47",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 1330,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "creationDate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 46,
                              "src": "5347:16:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                "typeString": "function () view external returns (uint256)"
                              }
                            },
                            "id": 1331,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5347:18:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1335,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1332,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1272,
                                "src": "5368:1:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 1333,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "registrationDate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1069,
                              "src": "5368:18:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 1334,
                              "name": "revealPeriod",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1057,
                              "src": "5389:12:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            },
                            "src": "5368:33:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5347:54:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "5327:74:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1356,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1353,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1278,
                            "src": "5568:5:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1354,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1272,
                              "src": "5576:1:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                "typeString": "struct HashRegistrar.Entry storage pointer"
                              }
                            },
                            "id": 1355,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "highestBid",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1073,
                            "src": "5576:12:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5568:20:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1409,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 1406,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1278,
                              "src": "6166:5:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1407,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1272,
                                "src": "6174:1:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 1408,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "value",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1071,
                              "src": "6174:7:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "6166:15:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 1445,
                            "nodeType": "Block",
                            "src": "6372:144:6",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "393935",
                                      "id": 1434,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6442:3:6",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      },
                                      "value": "995"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1431,
                                      "name": "bid",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1240,
                                      "src": "6428:3:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$47",
                                        "typeString": "contract Deed"
                                      }
                                    },
                                    "id": 1433,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "closeDeed",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 23,
                                    "src": "6428:13:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                      "typeString": "function (uint256) external"
                                    }
                                  },
                                  "id": 1435,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "6428:18:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 1436,
                                "nodeType": "ExpressionStatement",
                                "src": "6428:18:6"
                              },
                              {
                                "eventCall": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 1438,
                                      "name": "_hash",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1222,
                                      "src": "6477:5:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1439,
                                        "name": "msg",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3032,
                                        "src": "6484:3:6",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_message",
                                          "typeString": "msg"
                                        }
                                      },
                                      "id": 1440,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "sender",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "6484:10:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 1441,
                                      "name": "value",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1278,
                                      "src": "6496:5:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "34",
                                      "id": 1442,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6503:1:6",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_4_by_1",
                                        "typeString": "int_const 4"
                                      },
                                      "value": "4"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_rational_4_by_1",
                                        "typeString": "int_const 4"
                                      }
                                    ],
                                    "id": 1437,
                                    "name": "BidRevealed",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2596,
                                    "src": "6465:11:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                      "typeString": "function (bytes32,address,uint256,uint8)"
                                    }
                                  },
                                  "id": 1443,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "6465:40:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 1444,
                                "nodeType": "EmitStatement",
                                "src": "6460:45:6"
                              }
                            ]
                          },
                          "id": 1446,
                          "nodeType": "IfStatement",
                          "src": "6162:354:6",
                          "trueBody": {
                            "id": 1430,
                            "nodeType": "Block",
                            "src": "6183:183:6",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1414,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1410,
                                      "name": "h",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1272,
                                      "src": "6249:1:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                        "typeString": "struct HashRegistrar.Entry storage pointer"
                                      }
                                    },
                                    "id": 1412,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": true,
                                    "memberName": "value",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 1071,
                                    "src": "6249:7:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "id": 1413,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1278,
                                    "src": "6259:5:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "6249:15:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 1415,
                                "nodeType": "ExpressionStatement",
                                "src": "6249:15:6"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "393935",
                                      "id": 1419,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6292:3:6",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      },
                                      "value": "995"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1416,
                                      "name": "bid",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1240,
                                      "src": "6278:3:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$47",
                                        "typeString": "contract Deed"
                                      }
                                    },
                                    "id": 1418,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "closeDeed",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 23,
                                    "src": "6278:13:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                      "typeString": "function (uint256) external"
                                    }
                                  },
                                  "id": 1420,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "6278:18:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 1421,
                                "nodeType": "ExpressionStatement",
                                "src": "6278:18:6"
                              },
                              {
                                "eventCall": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 1423,
                                      "name": "_hash",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1222,
                                      "src": "6327:5:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1424,
                                        "name": "msg",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3032,
                                        "src": "6334:3:6",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_message",
                                          "typeString": "msg"
                                        }
                                      },
                                      "id": 1425,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "sender",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "6334:10:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 1426,
                                      "name": "value",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1278,
                                      "src": "6346:5:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "33",
                                      "id": 1427,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6353:1:6",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_3_by_1",
                                        "typeString": "int_const 3"
                                      },
                                      "value": "3"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_rational_3_by_1",
                                        "typeString": "int_const 3"
                                      }
                                    ],
                                    "id": 1422,
                                    "name": "BidRevealed",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2596,
                                    "src": "6315:11:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                      "typeString": "function (bytes32,address,uint256,uint8)"
                                    }
                                  },
                                  "id": 1428,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "6315:40:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 1429,
                                "nodeType": "EmitStatement",
                                "src": "6310:45:6"
                              }
                            ]
                          }
                        },
                        "id": 1447,
                        "nodeType": "IfStatement",
                        "src": "5564:952:6",
                        "trueBody": {
                          "id": 1405,
                          "nodeType": "Block",
                          "src": "5590:566:6",
                          "statements": [
                            {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                "id": 1364,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1358,
                                        "name": "h",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1272,
                                        "src": "5692:1:6",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                          "typeString": "struct HashRegistrar.Entry storage pointer"
                                        }
                                      },
                                      "id": 1359,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "deed",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 1067,
                                      "src": "5692:6:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$47",
                                        "typeString": "contract Deed"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_contract$_Deed_$47",
                                        "typeString": "contract Deed"
                                      }
                                    ],
                                    "id": 1357,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "5684:7:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_address_$",
                                      "typeString": "type(address)"
                                    },
                                    "typeName": "address"
                                  },
                                  "id": 1360,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "5684:15:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "!=",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "307830",
                                      "id": 1362,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "5711:3:6",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      },
                                      "value": "0x0"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      }
                                    ],
                                    "id": 1361,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "5703:7:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_address_$",
                                      "typeString": "type(address)"
                                    },
                                    "typeName": "address"
                                  },
                                  "id": 1363,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "5703:12:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  }
                                },
                                "src": "5684:31:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 1377,
                              "nodeType": "IfStatement",
                              "src": "5680:145:6",
                              "trueBody": {
                                "id": 1376,
                                "nodeType": "Block",
                                "src": "5717:108:6",
                                "statements": [
                                  {
                                    "assignments": [
                                      1366
                                    ],
                                    "declarations": [
                                      {
                                        "constant": false,
                                        "id": 1366,
                                        "name": "previousWinner",
                                        "nodeType": "VariableDeclaration",
                                        "scope": 1376,
                                        "src": "5735:19:6",
                                        "stateVariable": false,
                                        "storageLocation": "default",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_Deed_$47",
                                          "typeString": "contract Deed"
                                        },
                                        "typeName": {
                                          "contractScope": null,
                                          "id": 1365,
                                          "name": "Deed",
                                          "nodeType": "UserDefinedTypeName",
                                          "referencedDeclaration": 47,
                                          "src": "5735:4:6",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_Deed_$47",
                                            "typeString": "contract Deed"
                                          }
                                        },
                                        "value": null,
                                        "visibility": "internal"
                                      }
                                    ],
                                    "id": 1369,
                                    "initialValue": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 1367,
                                        "name": "h",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1272,
                                        "src": "5757:1:6",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                          "typeString": "struct HashRegistrar.Entry storage pointer"
                                        }
                                      },
                                      "id": 1368,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "deed",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 1067,
                                      "src": "5757:6:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$47",
                                        "typeString": "contract Deed"
                                      }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "5735:28:6"
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "hexValue": "393935",
                                          "id": 1373,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "5806:3:6",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_995_by_1",
                                            "typeString": "int_const 995"
                                          },
                                          "value": "995"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_rational_995_by_1",
                                            "typeString": "int_const 995"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 1370,
                                          "name": "previousWinner",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1366,
                                          "src": "5781:14:6",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_Deed_$47",
                                            "typeString": "contract Deed"
                                          }
                                        },
                                        "id": 1372,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "closeDeed",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 23,
                                        "src": "5781:24:6",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                          "typeString": "function (uint256) external"
                                        }
                                      },
                                      "id": 1374,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "5781:29:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_tuple$__$",
                                        "typeString": "tuple()"
                                      }
                                    },
                                    "id": 1375,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5781:29:6"
                                  }
                                ]
                              }
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 1383,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1378,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1272,
                                    "src": "5962:1:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                      "typeString": "struct HashRegistrar.Entry storage pointer"
                                    }
                                  },
                                  "id": 1380,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "value",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1071,
                                  "src": "5962:7:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1381,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1272,
                                    "src": "5972:1:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                      "typeString": "struct HashRegistrar.Entry storage pointer"
                                    }
                                  },
                                  "id": 1382,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "highestBid",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1073,
                                  "src": "5972:12:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "5962:22:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 1384,
                              "nodeType": "ExpressionStatement",
                              "src": "5962:22:6"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 1389,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1385,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1272,
                                    "src": "6040:1:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                      "typeString": "struct HashRegistrar.Entry storage pointer"
                                    }
                                  },
                                  "id": 1387,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "highestBid",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1073,
                                  "src": "6040:12:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 1388,
                                  "name": "value",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1278,
                                  "src": "6055:5:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "6040:20:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 1390,
                              "nodeType": "ExpressionStatement",
                              "src": "6040:20:6"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 1395,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1391,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1272,
                                    "src": "6074:1:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                      "typeString": "struct HashRegistrar.Entry storage pointer"
                                    }
                                  },
                                  "id": 1393,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "deed",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1067,
                                  "src": "6074:6:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Deed_$47",
                                    "typeString": "contract Deed"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 1394,
                                  "name": "bid",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1240,
                                  "src": "6083:3:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Deed_$47",
                                    "typeString": "contract Deed"
                                  }
                                },
                                "src": "6074:12:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$47",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 1396,
                              "nodeType": "ExpressionStatement",
                              "src": "6074:12:6"
                            },
                            {
                              "eventCall": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 1398,
                                    "name": "_hash",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1222,
                                    "src": "6117:5:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 1399,
                                      "name": "msg",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3032,
                                      "src": "6124:3:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_message",
                                        "typeString": "msg"
                                      }
                                    },
                                    "id": 1400,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "sender",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "6124:10:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address_payable",
                                      "typeString": "address payable"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 1401,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1278,
                                    "src": "6136:5:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "32",
                                    "id": 1402,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "6143:1:6",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    },
                                    "value": "2"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_address_payable",
                                      "typeString": "address payable"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    }
                                  ],
                                  "id": 1397,
                                  "name": "BidRevealed",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2596,
                                  "src": "6105:11:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                    "typeString": "function (bytes32,address,uint256,uint8)"
                                  }
                                },
                                "id": 1403,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6105:40:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 1404,
                              "nodeType": "EmitStatement",
                              "src": "6100:45:6"
                            }
                          ]
                        }
                      },
                      "id": 1448,
                      "nodeType": "IfStatement",
                      "src": "5323:1193:6",
                      "trueBody": {
                        "id": 1352,
                        "nodeType": "Block",
                        "src": "5403:155:6",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "393935",
                                  "id": 1341,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5484:3:6",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_995_by_1",
                                    "typeString": "int_const 995"
                                  },
                                  "value": "995"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_995_by_1",
                                    "typeString": "int_const 995"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1338,
                                  "name": "bid",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1240,
                                  "src": "5470:3:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Deed_$47",
                                    "typeString": "contract Deed"
                                  }
                                },
                                "id": 1340,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "closeDeed",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 23,
                                "src": "5470:13:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                  "typeString": "function (uint256) external"
                                }
                              },
                              "id": 1342,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5470:18:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 1343,
                            "nodeType": "ExpressionStatement",
                            "src": "5470:18:6"
                          },
                          {
                            "eventCall": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 1345,
                                  "name": "_hash",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1222,
                                  "src": "5519:5:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1346,
                                    "name": "msg",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3032,
                                    "src": "5526:3:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_message",
                                      "typeString": "msg"
                                    }
                                  },
                                  "id": 1347,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "sender",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "5526:10:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 1348,
                                  "name": "value",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1278,
                                  "src": "5538:5:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 1349,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5545:1:6",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 1344,
                                "name": "BidRevealed",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2596,
                                "src": "5507:11:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                  "typeString": "function (bytes32,address,uint256,uint8)"
                                }
                              },
                              "id": 1350,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5507:40:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 1351,
                            "nodeType": "EmitStatement",
                            "src": "5502:45:6"
                          }
                        ]
                      }
                    },
                    "id": 1449,
                    "nodeType": "IfStatement",
                    "src": "5222:1294:6",
                    "trueBody": {
                      "id": 1325,
                      "nodeType": "Block",
                      "src": "5255:62:6",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 1322,
                              "name": "revert",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [
                                3037,
                                3038
                              ],
                              "referencedDeclaration": 3037,
                              "src": "5298:6:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_revert_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 1323,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5298:8:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 1324,
                          "nodeType": "ExpressionStatement",
                          "src": "5298:8:6"
                        }
                      ]
                    }
                  },
                  "id": 1450,
                  "nodeType": "IfStatement",
                  "src": "5019:1497:6",
                  "trueBody": {
                    "id": 1317,
                    "nodeType": "Block",
                    "src": "5051:165:6",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "35",
                              "id": 1306,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5144:1:6",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_5_by_1",
                                "typeString": "int_const 5"
                              },
                              "value": "5"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_5_by_1",
                                "typeString": "int_const 5"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 1303,
                              "name": "bid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1240,
                              "src": "5130:3:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$47",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 1305,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "closeDeed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 23,
                            "src": "5130:13:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) external"
                            }
                          },
                          "id": 1307,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5130:16:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1308,
                        "nodeType": "ExpressionStatement",
                        "src": "5130:16:6"
                      },
                      {
                        "eventCall": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1310,
                              "name": "_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1222,
                              "src": "5177:5:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1311,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3032,
                                "src": "5184:3:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 1312,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "5184:10:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 1313,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1278,
                              "src": "5196:5:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 1314,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5203:1:6",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              }
                            ],
                            "id": 1309,
                            "name": "BidRevealed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2596,
                            "src": "5165:11:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                              "typeString": "function (bytes32,address,uint256,uint8)"
                            }
                          },
                          "id": 1315,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5165:40:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1316,
                        "nodeType": "EmitStatement",
                        "src": "5160:45:6"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Submit the properties of a bid to reveal them\n     * @param _hash The node in the sealedBid\n@param _value The bid amount in the sealedBid\n@param _salt The sale in the sealedBid",
            "id": 1452,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "unsealBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1227,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1222,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1452,
                  "src": "4566:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1221,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4566:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1224,
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1452,
                  "src": "4581:11:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1223,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4581:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1226,
                  "name": "_salt",
                  "nodeType": "VariableDeclaration",
                  "scope": 1452,
                  "src": "4594:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1225,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4594:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4565:43:6"
            },
            "returnParameters": {
              "id": 1228,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4618:0:6"
            },
            "scope": 2505,
            "src": "4547:1975:6",
            "stateMutability": "nonpayable",
            "superFunction": 2662,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1517,
              "nodeType": "Block",
              "src": "6695:786:6",
              "statements": [
                {
                  "assignments": [
                    1460
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1460,
                      "name": "bid",
                      "nodeType": "VariableDeclaration",
                      "scope": 1517,
                      "src": "6705:8:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1459,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 47,
                        "src": "6705:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$47",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1466,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1461,
                        "name": "sealedBids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1051,
                        "src": "6716:10:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$47_$_$",
                          "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                        }
                      },
                      "id": 1463,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1462,
                        "name": "bidder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1454,
                        "src": "6727:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "6716:18:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$47_$",
                        "typeString": "mapping(bytes32 => contract Deed)"
                      }
                    },
                    "id": 1465,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1464,
                      "name": "seal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1456,
                      "src": "6735:4:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "6716:24:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$47",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6705:35:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1484,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 1474,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1469,
                                "name": "bid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1460,
                                "src": "7176:3:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$47",
                                  "typeString": "contract Deed"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Deed_$47",
                                  "typeString": "contract Deed"
                                }
                              ],
                              "id": 1468,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7168:7:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 1470,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7168:12:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "307830",
                                "id": 1472,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7192:3:6",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0x0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 1471,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7184:7:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 1473,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7184:12:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "7168:28:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1483,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1475,
                            "name": "now",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3034,
                            "src": "7200:3:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1482,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 1480,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1476,
                                    "name": "bid",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1460,
                                    "src": "7207:3:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_Deed_$47",
                                      "typeString": "contract Deed"
                                    }
                                  },
                                  "id": 1477,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "creationDate",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 46,
                                  "src": "7207:16:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                    "typeString": "function () view external returns (uint256)"
                                  }
                                },
                                "id": 1478,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "7207:18:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "+",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 1479,
                                "name": "totalAuctionLength",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1054,
                                "src": "7228:18:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "src": "7207:39:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "32",
                              "id": 1481,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7249:7:6",
                              "subdenomination": "weeks",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1209600_by_1",
                                "typeString": "int_const 1209600"
                              },
                              "value": "2"
                            },
                            "src": "7207:49:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "7200:56:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "7168:88:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1467,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3035,
                        3036
                      ],
                      "referencedDeclaration": 3035,
                      "src": "7160:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1485,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7160:97:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1486,
                  "nodeType": "ExpressionStatement",
                  "src": "7160:97:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1490,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3032,
                          "src": "7347:3:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 1491,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "7347:10:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1487,
                        "name": "bid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1460,
                        "src": "7334:3:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$47",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 1489,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6,
                      "src": "7334:12:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_payable_$returns$__$",
                        "typeString": "function (address payable) external"
                      }
                    },
                    "id": 1492,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7334:24:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1493,
                  "nodeType": "ExpressionStatement",
                  "src": "7334:24:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "35",
                        "id": 1497,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7382:1:6",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        },
                        "value": "5"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1494,
                        "name": "bid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1460,
                        "src": "7368:3:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$47",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 1496,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "closeDeed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23,
                      "src": "7368:13:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 1498,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7368:16:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1499,
                  "nodeType": "ExpressionStatement",
                  "src": "7368:16:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1508,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1500,
                          "name": "sealedBids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1051,
                          "src": "7394:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$47_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                          }
                        },
                        "id": 1503,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1501,
                          "name": "bidder",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1454,
                          "src": "7405:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "7394:18:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$47_$",
                          "typeString": "mapping(bytes32 => contract Deed)"
                        }
                      },
                      "id": 1504,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1502,
                        "name": "seal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1456,
                        "src": "7413:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "7394:24:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1506,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7426:1:6",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 1505,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 47,
                        "src": "7421:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$47_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 1507,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7421:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "7394:34:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$47",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 1509,
                  "nodeType": "ExpressionStatement",
                  "src": "7394:34:6"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1511,
                        "name": "seal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1456,
                        "src": "7455:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1512,
                        "name": "bidder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1454,
                        "src": "7461:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 1513,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7469:1:6",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "35",
                        "id": 1514,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7472:1:6",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        },
                        "value": "5"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        }
                      ],
                      "id": 1510,
                      "name": "BidRevealed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2596,
                      "src": "7443:11:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                        "typeString": "function (bytes32,address,uint256,uint8)"
                      }
                    },
                    "id": 1515,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7443:31:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1516,
                  "nodeType": "EmitStatement",
                  "src": "7438:36:6"
                }
              ]
            },
            "documentation": "@dev Cancel a bid\n     * @param seal The value returned by the shaBid function",
            "id": 1518,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "cancelBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1457,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1454,
                  "name": "bidder",
                  "nodeType": "VariableDeclaration",
                  "scope": 1518,
                  "src": "6656:14:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1453,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6656:7:6",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1456,
                  "name": "seal",
                  "nodeType": "VariableDeclaration",
                  "scope": 1518,
                  "src": "6672:12:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1455,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6672:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6655:30:6"
            },
            "returnParameters": {
              "id": 1458,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6695:0:6"
            },
            "scope": 2505,
            "src": "6637:844:6",
            "stateMutability": "nonpayable",
            "superFunction": 2669,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1572,
              "nodeType": "Block",
              "src": "7707:356:6",
              "statements": [
                {
                  "assignments": [
                    1527
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1527,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1572,
                      "src": "7717:15:6",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1526,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1074,
                        "src": "7717:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1531,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1528,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1045,
                      "src": "7735:8:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$1074_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1530,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1529,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1520,
                      "src": "7744:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "7735:15:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$1074_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7717:33:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1540,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1532,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1527,
                        "src": "7849:1:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1534,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1071,
                      "src": "7849:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1536,
                            "name": "h",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1527,
                            "src": "7863:1:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                              "typeString": "struct HashRegistrar.Entry storage pointer"
                            }
                          },
                          "id": 1537,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1071,
                          "src": "7863:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 1538,
                          "name": "minPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1063,
                          "src": "7872:8:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 1535,
                        "name": "max",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2399,
                        "src": "7859:3:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 1539,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7859:22:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7849:32:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1541,
                  "nodeType": "ExpressionStatement",
                  "src": "7849:32:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1547,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1527,
                          "src": "7909:1:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1548,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1071,
                        "src": "7909:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 1549,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7918:4:6",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1542,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1527,
                          "src": "7891:1:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1545,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1067,
                        "src": "7891:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$47",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 1546,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 18,
                      "src": "7891:17:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (uint256,bool) external"
                      }
                    },
                    "id": 1550,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7891:32:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1551,
                  "nodeType": "ExpressionStatement",
                  "src": "7891:32:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1553,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1520,
                        "src": "7953:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1554,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1527,
                              "src": "7960:1:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                "typeString": "struct HashRegistrar.Entry storage pointer"
                              }
                            },
                            "id": 1555,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "deed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1067,
                            "src": "7960:6:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$47",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 1556,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 31,
                          "src": "7960:12:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        "id": 1557,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7960:14:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 1552,
                      "name": "trySetSubnodeOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2381,
                      "src": "7934:18:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 1558,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7934:41:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1559,
                  "nodeType": "ExpressionStatement",
                  "src": "7934:41:6"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1561,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1520,
                        "src": "8005:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1562,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1527,
                              "src": "8012:1:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                "typeString": "struct HashRegistrar.Entry storage pointer"
                              }
                            },
                            "id": 1563,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "deed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1067,
                            "src": "8012:6:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$47",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 1564,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 31,
                          "src": "8012:12:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        "id": 1565,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8012:14:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1566,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1527,
                          "src": "8028:1:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1567,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1071,
                        "src": "8028:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1568,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1527,
                          "src": "8037:1:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1569,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1069,
                        "src": "8037:18:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1560,
                      "name": "HashRegistered",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2606,
                      "src": "7990:14:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256,uint256)"
                      }
                    },
                    "id": 1570,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7990:66:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1571,
                  "nodeType": "EmitStatement",
                  "src": "7985:71:6"
                }
              ]
            },
            "documentation": "@dev Finalize an auction after the registration date has passed\n     * @param _hash The hash of the name the auction is for",
            "id": 1573,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 1523,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1520,
                    "src": "7700:5:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 1524,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1522,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1115,
                  "src": "7690:9:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7690:16:6"
              }
            ],
            "name": "finalizeAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1521,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1520,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1573,
                  "src": "7666:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1519,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7666:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7665:15:6"
            },
            "returnParameters": {
              "id": 1525,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7707:0:6"
            },
            "scope": 2505,
            "src": "7641:422:6",
            "stateMutability": "nonpayable",
            "superFunction": 2674,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1610,
              "nodeType": "Block",
              "src": "8357:174:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        "id": 1588,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1584,
                          "name": "newOwner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1577,
                          "src": "8375:8:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 1586,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8395:3:6",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 1585,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "8387:7:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 1587,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8387:12:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "src": "8375:24:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1583,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3035,
                        3036
                      ],
                      "referencedDeclaration": 3035,
                      "src": "8367:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1589,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8367:33:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1590,
                  "nodeType": "ExpressionStatement",
                  "src": "8367:33:6"
                },
                {
                  "assignments": [
                    1592
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1592,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1610,
                      "src": "8411:15:6",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1591,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1074,
                        "src": "8411:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1596,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1593,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1045,
                      "src": "8429:8:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$1074_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1595,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1594,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1575,
                      "src": "8438:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "8429:15:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$1074_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8411:33:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1602,
                        "name": "newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1577,
                        "src": "8470:8:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1597,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1592,
                          "src": "8454:1:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1600,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1067,
                        "src": "8454:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$47",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 1601,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6,
                      "src": "8454:15:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_payable_$returns$__$",
                        "typeString": "function (address payable) external"
                      }
                    },
                    "id": 1603,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8454:25:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1604,
                  "nodeType": "ExpressionStatement",
                  "src": "8454:25:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1606,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1575,
                        "src": "8508:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1607,
                        "name": "newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1577,
                        "src": "8515:8:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "id": 1605,
                      "name": "trySetSubnodeOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2381,
                      "src": "8489:18:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 1608,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8489:35:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1609,
                  "nodeType": "ExpressionStatement",
                  "src": "8489:35:6"
                }
              ]
            },
            "documentation": "@dev The owner of a domain may transfer it to someone else at any time.\n     * @param _hash The node to transfer\n@param newOwner The address to transfer ownership to",
            "id": 1611,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 1580,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1575,
                    "src": "8350:5:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 1581,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1579,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1115,
                  "src": "8340:9:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "8340:16:6"
              }
            ],
            "name": "transfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1578,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1575,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1611,
                  "src": "8290:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1574,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8290:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1577,
                  "name": "newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1611,
                  "src": "8305:24:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 1576,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8305:15:6",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8289:41:6"
            },
            "returnParameters": {
              "id": 1582,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8357:0:6"
            },
            "scope": 2505,
            "src": "8272:259:6",
            "stateMutability": "nonpayable",
            "superFunction": 2681,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1684,
              "nodeType": "Block",
              "src": "8797:382:6",
              "statements": [
                {
                  "assignments": [
                    1620
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1620,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1684,
                      "src": "8807:15:6",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1619,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1074,
                        "src": "8807:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1624,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1621,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1045,
                      "src": "8825:8:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$1074_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1623,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1622,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1613,
                      "src": "8834:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "8825:15:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$1074_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8807:33:6"
                },
                {
                  "assignments": [
                    1626
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1626,
                      "name": "deedContract",
                      "nodeType": "VariableDeclaration",
                      "scope": 1684,
                      "src": "8850:17:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1625,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 47,
                        "src": "8850:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$47",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1629,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 1627,
                      "name": "h",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1620,
                      "src": "8870:1:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry storage pointer"
                      }
                    },
                    "id": 1628,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "deed",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 1067,
                    "src": "8870:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$47",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8850:26:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 1645,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 1636,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 1631,
                            "name": "now",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3034,
                            "src": "8895:3:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 1635,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1632,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1620,
                                "src": "8902:1:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 1633,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "registrationDate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1069,
                              "src": "8902:18:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "333635",
                              "id": 1634,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8923:8:6",
                              "subdenomination": "days",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_31536000_by_1",
                                "typeString": "int_const 31536000"
                              },
                              "value": "365"
                            },
                            "src": "8902:29:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "8895:36:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 1644,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1639,
                                "name": "rootNode",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1041,
                                "src": "8945:8:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1637,
                                "name": "ens",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1039,
                                "src": "8935:3:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ENS_$436",
                                  "typeString": "contract ENS"
                                }
                              },
                              "id": 1638,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "owner",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 405,
                              "src": "8935:9:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                                "typeString": "function (bytes32) view external returns (address)"
                              }
                            },
                            "id": 1640,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8935:19:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 1642,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3060,
                                "src": "8966:4:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_HashRegistrar_$2505",
                                  "typeString": "contract HashRegistrar"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_HashRegistrar_$2505",
                                  "typeString": "contract HashRegistrar"
                                }
                              ],
                              "id": 1641,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "8958:7:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 1643,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8958:13:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "8935:36:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "8895:76:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1630,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3035,
                        3036
                      ],
                      "referencedDeclaration": 3035,
                      "src": "8887:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1646,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8887:85:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1647,
                  "nodeType": "ExpressionStatement",
                  "src": "8887:85:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1652,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1648,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1620,
                        "src": "8983:1:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1650,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1071,
                      "src": "8983:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1651,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "8993:1:6",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "8983:11:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1653,
                  "nodeType": "ExpressionStatement",
                  "src": "8983:11:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1658,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1654,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1620,
                        "src": "9004:1:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1656,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1073,
                      "src": "9004:12:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1657,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9019:1:6",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "9004:16:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1659,
                  "nodeType": "ExpressionStatement",
                  "src": "9004:16:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1666,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1660,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1620,
                        "src": "9030:1:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1662,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "deed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1067,
                      "src": "9030:6:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1664,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9044:1:6",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 1663,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 47,
                        "src": "9039:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$47_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 1665,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9039:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "9030:16:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$47",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 1667,
                  "nodeType": "ExpressionStatement",
                  "src": "9030:16:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1669,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1613,
                        "src": "9077:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1668,
                      "name": "_tryEraseSingleNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2147,
                      "src": "9057:19:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 1670,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9057:26:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1671,
                  "nodeType": "ExpressionStatement",
                  "src": "9057:26:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "31303030",
                        "id": 1675,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9116:4:6",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1000_by_1",
                          "typeString": "int_const 1000"
                        },
                        "value": "1000"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1000_by_1",
                          "typeString": "int_const 1000"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1672,
                        "name": "deedContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1626,
                        "src": "9093:12:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$47",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 1674,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "closeDeed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23,
                      "src": "9093:22:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 1676,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9093:28:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1677,
                  "nodeType": "ExpressionStatement",
                  "src": "9093:28:6"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1679,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1613,
                        "src": "9149:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1680,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1620,
                          "src": "9156:1:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1681,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1071,
                        "src": "9156:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1678,
                      "name": "HashReleased",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2612,
                      "src": "9136:12:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 1682,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9136:28:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1683,
                  "nodeType": "EmitStatement",
                  "src": "9131:33:6"
                }
              ]
            },
            "documentation": "@dev After some time, or if we're no longer the registrar, the owner can release\n     the name and get their ether back.\n     * @param _hash The node to release",
            "id": 1685,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 1616,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1613,
                    "src": "8790:5:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 1617,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1615,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1115,
                  "src": "8780:9:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "8780:16:6"
              }
            ],
            "name": "releaseDeed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1614,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1613,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1685,
                  "src": "8756:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1612,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8756:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8755:15:6"
            },
            "returnParameters": {
              "id": 1618,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8797:0:6"
            },
            "scope": 2505,
            "src": "8735:444:6",
            "stateMutability": "nonpayable",
            "superFunction": 2686,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1805,
              "nodeType": "Block",
              "src": "9704:675:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1705,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1702,
                              "name": "unhashedName",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1687,
                              "src": "9729:12:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_calldata_ptr",
                                "typeString": "string calldata"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_string_calldata_ptr",
                                "typeString": "string calldata"
                              }
                            ],
                            "id": 1701,
                            "name": "strlen",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2504,
                            "src": "9722:6:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_uint256_$",
                              "typeString": "function (string memory) pure returns (uint256)"
                            }
                          },
                          "id": 1703,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9722:20:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "36",
                          "id": 1704,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9746:1:6",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_6_by_1",
                            "typeString": "int_const 6"
                          },
                          "value": "6"
                        },
                        "src": "9722:25:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1700,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3035,
                        3036
                      ],
                      "referencedDeclaration": 3035,
                      "src": "9714:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1706,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9714:34:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1707,
                  "nodeType": "ExpressionStatement",
                  "src": "9714:34:6"
                },
                {
                  "assignments": [
                    1709
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1709,
                      "name": "hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 1805,
                      "src": "9758:12:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 1708,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "9758:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1716,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1713,
                            "name": "unhashedName",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1687,
                            "src": "9794:12:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_calldata_ptr",
                              "typeString": "string calldata"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_calldata_ptr",
                              "typeString": "string calldata"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1711,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3019,
                            "src": "9783:3:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 1712,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "9783:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 1714,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9783:24:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 1710,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3026,
                      "src": "9773:9:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 1715,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9773:35:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9758:50:6"
                },
                {
                  "assignments": [
                    1718
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1718,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1805,
                      "src": "9819:15:6",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1717,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1074,
                        "src": "9819:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1722,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1719,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1045,
                      "src": "9837:8:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$1074_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1721,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1720,
                      "name": "hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1709,
                      "src": "9846:4:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "9837:14:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$1074_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9819:32:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1724,
                        "name": "hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1709,
                        "src": "9882:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1723,
                      "name": "_tryEraseSingleNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2147,
                      "src": "9862:19:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 1725,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9862:25:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1726,
                  "nodeType": "ExpressionStatement",
                  "src": "9862:25:6"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 1734,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1728,
                            "name": "h",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1718,
                            "src": "9910:1:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                              "typeString": "struct HashRegistrar.Entry storage pointer"
                            }
                          },
                          "id": 1729,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "deed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1067,
                          "src": "9910:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Deed_$47",
                            "typeString": "contract Deed"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Deed_$47",
                            "typeString": "contract Deed"
                          }
                        ],
                        "id": 1727,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "9902:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 1730,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9902:15:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "307830",
                          "id": 1732,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9929:3:6",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0x0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 1731,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "9921:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 1733,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9921:12:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "src": "9902:31:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 1775,
                  "nodeType": "IfStatement",
                  "src": "9898:321:6",
                  "trueBody": {
                    "id": 1774,
                    "nodeType": "Block",
                    "src": "9935:284:6",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 1743,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1735,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1718,
                              "src": "10050:1:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                "typeString": "struct HashRegistrar.Entry storage pointer"
                              }
                            },
                            "id": 1737,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "value",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1071,
                            "src": "10050:7:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1739,
                                  "name": "h",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1718,
                                  "src": "10064:1:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                    "typeString": "struct HashRegistrar.Entry storage pointer"
                                  }
                                },
                                "id": 1740,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "value",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1071,
                                "src": "10064:7:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 1741,
                                "name": "minPrice",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1063,
                                "src": "10073:8:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 1738,
                              "name": "max",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2399,
                              "src": "10060:3:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 1742,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10060:22:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "10050:32:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 1744,
                        "nodeType": "ExpressionStatement",
                        "src": "10050:32:6"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 1753,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1750,
                                  "name": "h",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1718,
                                  "src": "10114:1:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                    "typeString": "struct HashRegistrar.Entry storage pointer"
                                  }
                                },
                                "id": 1751,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "value",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1071,
                                "src": "10114:7:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "/",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "32",
                                "id": 1752,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "10122:1:6",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                },
                                "value": "2"
                              },
                              "src": "10114:9:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 1754,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10125:5:6",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1745,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1718,
                                "src": "10096:1:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 1748,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "deed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1067,
                              "src": "10096:6:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$47",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 1749,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setBalance",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 18,
                            "src": "10096:17:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bool_$returns$__$",
                              "typeString": "function (uint256,bool) external"
                            }
                          },
                          "id": 1755,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10096:35:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1756,
                        "nodeType": "ExpressionStatement",
                        "src": "10096:35:6"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1762,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3032,
                                "src": "10161:3:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 1763,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "10161:10:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1757,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1718,
                                "src": "10145:1:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 1760,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "deed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1067,
                              "src": "10145:6:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$47",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 1761,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6,
                            "src": "10145:15:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_payable_$returns$__$",
                              "typeString": "function (address payable) external"
                            }
                          },
                          "id": 1764,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10145:27:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1765,
                        "nodeType": "ExpressionStatement",
                        "src": "10145:27:6"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "31303030",
                              "id": 1771,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10203:4:6",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1000_by_1",
                                "typeString": "int_const 1000"
                              },
                              "value": "1000"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_1000_by_1",
                                "typeString": "int_const 1000"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 1766,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1718,
                                "src": "10186:1:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 1769,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "deed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1067,
                              "src": "10186:6:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$47",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 1770,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "closeDeed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 23,
                            "src": "10186:16:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) external"
                            }
                          },
                          "id": 1772,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10186:22:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 1773,
                        "nodeType": "ExpressionStatement",
                        "src": "10186:22:6"
                      }
                    ]
                  }
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1777,
                        "name": "hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1709,
                        "src": "10250:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1778,
                        "name": "unhashedName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1687,
                        "src": "10256:12:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1779,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1718,
                          "src": "10270:1:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1780,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1071,
                        "src": "10270:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1781,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1718,
                          "src": "10279:1:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1782,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1069,
                        "src": "10279:18:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1776,
                      "name": "HashInvalidated",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2622,
                      "src": "10234:15:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,string memory,uint256,uint256)"
                      }
                    },
                    "id": 1783,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10234:64:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1784,
                  "nodeType": "EmitStatement",
                  "src": "10229:69:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1789,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1785,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1718,
                        "src": "10309:1:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1787,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1071,
                      "src": "10309:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1788,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10319:1:6",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "10309:11:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1790,
                  "nodeType": "ExpressionStatement",
                  "src": "10309:11:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1795,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1791,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1718,
                        "src": "10330:1:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1793,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1073,
                      "src": "10330:12:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1794,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10345:1:6",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "10330:16:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1796,
                  "nodeType": "ExpressionStatement",
                  "src": "10330:16:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1803,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1797,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1718,
                        "src": "10356:1:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1799,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "deed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1067,
                      "src": "10356:6:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1801,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10370:1:6",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 1800,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 47,
                        "src": "10365:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$47_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 1802,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10365:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "10356:16:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$47",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 1804,
                  "nodeType": "ExpressionStatement",
                  "src": "10356:16:6"
                }
              ]
            },
            "documentation": "@dev Submit a name 6 characters long or less. If it has been registered,\n     the submitter will earn 50% of the deed value. \n\n     * We are purposefully handicapping the simplified registrar as a way \nto force it into being restructured in a few years.\n     * @param unhashedName An invalid name to search for in the registry.",
            "id": 1806,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1693,
                            "name": "unhashedName",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1687,
                            "src": "9672:12:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_calldata_ptr",
                              "typeString": "string calldata"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_calldata_ptr",
                              "typeString": "string calldata"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1691,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3019,
                            "src": "9661:3:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 1692,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "9661:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 1694,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9661:24:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 1690,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3026,
                      "src": "9651:9:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 1695,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9651:35:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 1696,
                      "name": "Mode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2572,
                      "src": "9688:4:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Mode_$2572_$",
                        "typeString": "type(enum Registrar.Mode)"
                      }
                    },
                    "id": 1697,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "Owned",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "9688:10:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$2572",
                      "typeString": "enum Registrar.Mode"
                    }
                  }
                ],
                "id": 1698,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1689,
                  "name": "inState",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1090,
                  "src": "9643:7:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_enum$_Mode_$2572_$",
                    "typeString": "modifier (bytes32,enum Registrar.Mode)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "9643:56:6"
              }
            ],
            "name": "invalidateName",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1688,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1687,
                  "name": "unhashedName",
                  "nodeType": "VariableDeclaration",
                  "scope": 1806,
                  "src": "9588:28:6",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1686,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "9588:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9587:30:6"
            },
            "returnParameters": {
              "id": 1699,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9704:0:6"
            },
            "scope": 2505,
            "src": "9564:815:6",
            "stateMutability": "nonpayable",
            "superFunction": 2691,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1842,
              "nodeType": "Block",
              "src": "11063:176:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1816,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1813,
                            "name": "labels",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1809,
                            "src": "11081:6:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                              "typeString": "bytes32[] calldata"
                            }
                          },
                          "id": 1814,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11081:13:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1815,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "11098:1:6",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "11081:18:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1812,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3035,
                        3036
                      ],
                      "referencedDeclaration": 3035,
                      "src": "11073:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1817,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11073:27:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1818,
                  "nodeType": "ExpressionStatement",
                  "src": "11073:27:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Mode_$2572",
                          "typeString": "enum Registrar.Mode"
                        },
                        "id": 1830,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 1821,
                                "name": "labels",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1809,
                                "src": "11124:6:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                  "typeString": "bytes32[] calldata"
                                }
                              },
                              "id": 1826,
                              "indexExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 1825,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1822,
                                    "name": "labels",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1809,
                                    "src": "11131:6:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                      "typeString": "bytes32[] calldata"
                                    }
                                  },
                                  "id": 1823,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "11131:13:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "-",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 1824,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "11147:1:6",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "11131:17:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "11124:25:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 1820,
                            "name": "state",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2030,
                            "src": "11118:5:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$2572_$",
                              "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                            }
                          },
                          "id": 1827,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11118:32:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$2572",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1828,
                            "name": "Mode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2572,
                            "src": "11154:4:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Mode_$2572_$",
                              "typeString": "type(enum Registrar.Mode)"
                            }
                          },
                          "id": 1829,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "Owned",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11154:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$2572",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "src": "11118:46:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1819,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3035,
                        3036
                      ],
                      "referencedDeclaration": 3035,
                      "src": "11110:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1831,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11110:55:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1832,
                  "nodeType": "ExpressionStatement",
                  "src": "11110:55:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1837,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1834,
                            "name": "labels",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1809,
                            "src": "11196:6:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                              "typeString": "bytes32[] calldata"
                            }
                          },
                          "id": 1835,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11196:13:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "-",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 1836,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "11212:1:6",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "11196:17:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1838,
                        "name": "labels",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1809,
                        "src": "11215:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1839,
                        "name": "rootNode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1041,
                        "src": "11223:8:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 1833,
                      "name": "_eraseNodeHierarchy",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2356,
                      "src": "11176:19:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$returns$__$",
                        "typeString": "function (uint256,bytes32[] memory,bytes32)"
                      }
                    },
                    "id": 1840,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11176:56:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1841,
                  "nodeType": "ExpressionStatement",
                  "src": "11176:56:6"
                }
              ]
            },
            "documentation": "@dev Allows anyone to delete the owner and resolver records for a (subdomain of) a\n     name that is not currently owned in the registrar. If passing, eg, 'foo.bar.eth',\n     the owner and resolver fields on 'foo.bar.eth' and 'bar.eth' will all be cleared.\n     * @param labels A series of label hashes identifying the name to zero out, rooted at the\n       registrar's root. Must contain at least one element. For instance, to zero \n       'foo.bar.eth' on a registrar that owns '.eth', pass an array containing\n       [keccak256('foo'), keccak256('bar')].",
            "id": 1843,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "eraseNode",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1810,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1809,
                  "name": "labels",
                  "nodeType": "VariableDeclaration",
                  "scope": 1843,
                  "src": "11027:25:6",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1807,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "11027:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 1808,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "11027:9:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11026:27:6"
            },
            "returnParameters": {
              "id": 1811,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11063:0:6"
            },
            "scope": 2505,
            "src": "11008:231:6",
            "stateMutability": "nonpayable",
            "superFunction": 2697,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1917,
              "nodeType": "Block",
              "src": "11541:496:6",
              "statements": [
                {
                  "assignments": [
                    1852
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1852,
                      "name": "registrar",
                      "nodeType": "VariableDeclaration",
                      "scope": 1917,
                      "src": "11551:17:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 1851,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "11551:7:6",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1857,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1855,
                        "name": "rootNode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1041,
                        "src": "11581:8:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1853,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1039,
                        "src": "11571:3:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ENS_$436",
                          "typeString": "contract ENS"
                        }
                      },
                      "id": 1854,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "owner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 405,
                      "src": "11571:9:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                        "typeString": "function (bytes32) view external returns (address)"
                      }
                    },
                    "id": 1856,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11571:19:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11551:39:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 1863,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1859,
                          "name": "registrar",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1852,
                          "src": "11608:9:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1861,
                              "name": "this",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3060,
                              "src": "11629:4:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_HashRegistrar_$2505",
                                "typeString": "contract HashRegistrar"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_HashRegistrar_$2505",
                                "typeString": "contract HashRegistrar"
                              }
                            ],
                            "id": 1860,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "11621:7:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 1862,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11621:13:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "11608:26:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1858,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3035,
                        3036
                      ],
                      "referencedDeclaration": 3035,
                      "src": "11600:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1864,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11600:35:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1865,
                  "nodeType": "ExpressionStatement",
                  "src": "11600:35:6"
                },
                {
                  "assignments": [
                    1867
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1867,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1917,
                      "src": "11674:15:6",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1866,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1074,
                        "src": "11674:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1871,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1868,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1045,
                      "src": "11692:8:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$1074_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1870,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1869,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1845,
                      "src": "11701:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "11692:15:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$1074_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11674:33:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1877,
                        "name": "registrar",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1852,
                        "src": "11737:9:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1872,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "11717:1:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1875,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1067,
                        "src": "11717:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$47",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 1876,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setRegistrar",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 11,
                      "src": "11717:19:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 1878,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11717:30:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1879,
                  "nodeType": "ExpressionStatement",
                  "src": "11717:30:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1884,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1845,
                        "src": "11860:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1885,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "11867:1:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1886,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1067,
                        "src": "11867:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$47",
                          "typeString": "contract Deed"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1887,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "11875:1:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1888,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1069,
                        "src": "11875:18:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Deed_$47",
                          "typeString": "contract Deed"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1881,
                            "name": "registrar",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1852,
                            "src": "11825:9:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 1880,
                          "name": "Registrar",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2727,
                          "src": "11815:9:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Registrar_$2727_$",
                            "typeString": "type(contract Registrar)"
                          }
                        },
                        "id": 1882,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11815:20:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Registrar_$2727",
                          "typeString": "contract Registrar"
                        }
                      },
                      "id": 1883,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "acceptRegistrarTransfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2711,
                      "src": "11815:44:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_contract$_Deed_$47_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,contract Deed,uint256) external"
                      }
                    },
                    "id": 1889,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11815:79:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1890,
                  "nodeType": "ExpressionStatement",
                  "src": "11815:79:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1897,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1891,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1867,
                        "src": "11935:1:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1893,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "deed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1067,
                      "src": "11935:6:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 1895,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "11949:1:6",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 1894,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 47,
                        "src": "11944:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$47_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 1896,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11944:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "11935:16:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$47",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 1898,
                  "nodeType": "ExpressionStatement",
                  "src": "11935:16:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1903,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1899,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1867,
                        "src": "11961:1:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1901,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "registrationDate",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1069,
                      "src": "11961:18:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1902,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "11982:1:6",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "11961:22:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1904,
                  "nodeType": "ExpressionStatement",
                  "src": "11961:22:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1909,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1905,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1867,
                        "src": "11993:1:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1907,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1071,
                      "src": "11993:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1908,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12003:1:6",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "11993:11:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1910,
                  "nodeType": "ExpressionStatement",
                  "src": "11993:11:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1915,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1911,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1867,
                        "src": "12014:1:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 1913,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1073,
                      "src": "12014:12:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 1914,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12029:1:6",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12014:16:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1916,
                  "nodeType": "ExpressionStatement",
                  "src": "12014:16:6"
                }
              ]
            },
            "documentation": "@dev Transfers the deed to the current registrar, if different from this one.\n     * Used during the upgrade process to a permanent registrar.\n     * @param _hash The name hash to transfer.",
            "id": 1918,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 1848,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1845,
                    "src": "11534:5:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 1849,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1847,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1115,
                  "src": "11524:9:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "11524:16:6"
              }
            ],
            "name": "transferRegistrars",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1846,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1845,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1918,
                  "src": "11500:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1844,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11500:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11499:15:6"
            },
            "returnParameters": {
              "id": 1850,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11541:0:6"
            },
            "scope": 2505,
            "src": "11472:565:6",
            "stateMutability": "nonpayable",
            "superFunction": 2702,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1933,
              "nodeType": "Block",
              "src": "12523:82:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1927,
                    "name": "hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1920,
                    "src": "12533:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 1928,
                  "nodeType": "ExpressionStatement",
                  "src": "12533:4:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1929,
                    "name": "deed",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1922,
                    "src": "12539:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$47",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 1930,
                  "nodeType": "ExpressionStatement",
                  "src": "12539:4:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1931,
                    "name": "registrationDate",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1924,
                    "src": "12545:16:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1932,
                  "nodeType": "ExpressionStatement",
                  "src": "12545:16:6"
                }
              ]
            },
            "documentation": "@dev Accepts a transfer from a previous registrar; stubbed out here since there\n     is no previous registrar implementing this interface.\n     * @param hash The sha3 hash of the label to transfer.\n@param deed The Deed object for the name being transferred in.\n@param registrationDate The date at which the name was originally registered.",
            "id": 1934,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "acceptRegistrarTransfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1925,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1920,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1934,
                  "src": "12466:12:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1919,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12466:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1922,
                  "name": "deed",
                  "nodeType": "VariableDeclaration",
                  "scope": 1934,
                  "src": "12480:9:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Deed_$47",
                    "typeString": "contract Deed"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1921,
                    "name": "Deed",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 47,
                    "src": "12480:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$47",
                      "typeString": "contract Deed"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1924,
                  "name": "registrationDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 1934,
                  "src": "12491:21:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1923,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "12491:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12465:48:6"
            },
            "returnParameters": {
              "id": 1926,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12523:0:6"
            },
            "scope": 2505,
            "src": "12433:172:6",
            "stateMutability": "nonpayable",
            "superFunction": 2711,
            "visibility": "external"
          },
          {
            "body": {
              "id": 1970,
              "nodeType": "Block",
              "src": "12699:141:6",
              "statements": [
                {
                  "assignments": [
                    1950
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1950,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 1970,
                      "src": "12709:15:6",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1949,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1074,
                        "src": "12709:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1954,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1951,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1045,
                      "src": "12727:8:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$1074_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1953,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1952,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1936,
                      "src": "12736:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "12727:15:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$1074_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12709:33:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1956,
                            "name": "_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1936,
                            "src": "12766:5:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 1955,
                          "name": "state",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2030,
                          "src": "12760:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$2572_$",
                            "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                          }
                        },
                        "id": 1957,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12760:12:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$2572",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 1959,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1950,
                              "src": "12782:1:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                "typeString": "struct HashRegistrar.Entry storage pointer"
                              }
                            },
                            "id": 1960,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "deed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1067,
                            "src": "12782:6:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$47",
                              "typeString": "contract Deed"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_Deed_$47",
                              "typeString": "contract Deed"
                            }
                          ],
                          "id": 1958,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "12774:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 1961,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12774:15:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1962,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1950,
                          "src": "12791:1:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1963,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1069,
                        "src": "12791:18:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1964,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1950,
                          "src": "12811:1:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1965,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1071,
                        "src": "12811:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1966,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1950,
                          "src": "12820:1:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1967,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "highestBid",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1073,
                        "src": "12820:12:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "id": 1968,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "12759:74:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_enum$_Mode_$2572_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$",
                      "typeString": "tuple(enum Registrar.Mode,address,uint256,uint256,uint256)"
                    }
                  },
                  "functionReturnParameters": 1948,
                  "id": 1969,
                  "nodeType": "Return",
                  "src": "12752:81:6"
                }
              ]
            },
            "documentation": null,
            "id": 1971,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "entries",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1937,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1936,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 1971,
                  "src": "12628:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1935,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12628:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12627:15:6"
            },
            "returnParameters": {
              "id": 1948,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1939,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1971,
                  "src": "12666:4:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mode_$2572",
                    "typeString": "enum Registrar.Mode"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1938,
                    "name": "Mode",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2572,
                    "src": "12666:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$2572",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1941,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1971,
                  "src": "12672:7:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1940,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "12672:7:6",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1943,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1971,
                  "src": "12681:4:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1942,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "12681:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1945,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1971,
                  "src": "12687:4:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1944,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "12687:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1947,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1971,
                  "src": "12693:4:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1946,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "12693:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12665:33:6"
            },
            "scope": 2505,
            "src": "12611:229:6",
            "stateMutability": "view",
            "superFunction": 2726,
            "visibility": "external"
          },
          {
            "body": {
              "id": 2029,
              "nodeType": "Block",
              "src": "13126:528:6",
              "statements": [
                {
                  "assignments": [
                    1979
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1979,
                      "name": "entry",
                      "nodeType": "VariableDeclaration",
                      "scope": 2029,
                      "src": "13136:19:6",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 1978,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1074,
                        "src": "13136:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 1983,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 1980,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1045,
                      "src": "13158:8:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$1074_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 1982,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 1981,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1973,
                      "src": "13167:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "13158:15:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$1074_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13136:37:6"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 1988,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "13188:22:6",
                    "subExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1985,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1973,
                          "src": "13199:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 1986,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3034,
                          "src": "13206:3:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 1984,
                        "name": "isAllowed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2046,
                        "src": "13189:9:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (bytes32,uint256) view returns (bool)"
                        }
                      },
                      "id": 1987,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13189:21:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 1996,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 1993,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3034,
                        "src": "13274:3:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 1994,
                          "name": "entry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1979,
                          "src": "13280:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 1995,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1069,
                        "src": "13280:22:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "13274:28:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 2026,
                      "nodeType": "Block",
                      "src": "13492:156:6",
                      "statements": [
                        {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 2016,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 2013,
                                "name": "entry",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1979,
                                "src": "13510:5:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 2014,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "highestBid",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1073,
                              "src": "13510:16:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 2015,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "13530:1:6",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "13510:21:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 2024,
                            "nodeType": "Block",
                            "src": "13588:50:6",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2021,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2572,
                                    "src": "13613:4:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$2572_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 2022,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Owned",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "13613:10:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$2572",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1977,
                                "id": 2023,
                                "nodeType": "Return",
                                "src": "13606:17:6"
                              }
                            ]
                          },
                          "id": 2025,
                          "nodeType": "IfStatement",
                          "src": "13506:132:6",
                          "trueBody": {
                            "id": 2020,
                            "nodeType": "Block",
                            "src": "13533:49:6",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2017,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2572,
                                    "src": "13558:4:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$2572_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 2018,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Open",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "13558:9:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$2572",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1977,
                                "id": 2019,
                                "nodeType": "Return",
                                "src": "13551:16:6"
                              }
                            ]
                          }
                        }
                      ]
                    },
                    "id": 2027,
                    "nodeType": "IfStatement",
                    "src": "13270:378:6",
                    "trueBody": {
                      "id": 2012,
                      "nodeType": "Block",
                      "src": "13304:182:6",
                      "statements": [
                        {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 2002,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 1997,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3034,
                              "src": "13322:3:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 2001,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1998,
                                  "name": "entry",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1979,
                                  "src": "13328:5:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                                    "typeString": "struct HashRegistrar.Entry storage pointer"
                                  }
                                },
                                "id": 1999,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "registrationDate",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 1069,
                                "src": "13328:22:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 2000,
                                "name": "revealPeriod",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1057,
                                "src": "13353:12:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "src": "13328:37:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "13322:43:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 2010,
                            "nodeType": "Block",
                            "src": "13425:51:6",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2007,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2572,
                                    "src": "13450:4:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$2572_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 2008,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Reveal",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "13450:11:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$2572",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1977,
                                "id": 2009,
                                "nodeType": "Return",
                                "src": "13443:18:6"
                              }
                            ]
                          },
                          "id": 2011,
                          "nodeType": "IfStatement",
                          "src": "13318:158:6",
                          "trueBody": {
                            "id": 2006,
                            "nodeType": "Block",
                            "src": "13367:52:6",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2003,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2572,
                                    "src": "13392:4:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$2572_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 2004,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Auction",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "13392:12:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$2572",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 1977,
                                "id": 2005,
                                "nodeType": "Return",
                                "src": "13385:19:6"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  "id": 2028,
                  "nodeType": "IfStatement",
                  "src": "13184:464:6",
                  "trueBody": {
                    "id": 1992,
                    "nodeType": "Block",
                    "src": "13212:52:6",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1989,
                            "name": "Mode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2572,
                            "src": "13233:4:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Mode_$2572_$",
                              "typeString": "type(enum Registrar.Mode)"
                            }
                          },
                          "id": 1990,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "NotYetAvailable",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "13233:20:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$2572",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "functionReturnParameters": 1977,
                        "id": 1991,
                        "nodeType": "Return",
                        "src": "13226:27:6"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 2030,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "state",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1974,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1973,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2030,
                  "src": "13084:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1972,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13084:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13083:15:6"
            },
            "returnParameters": {
              "id": 1977,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1976,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2030,
                  "src": "13120:4:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mode_$2572",
                    "typeString": "enum Registrar.Mode"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1975,
                    "name": "Mode",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2572,
                    "src": "13120:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$2572",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13119:6:6"
            },
            "scope": 2505,
            "src": "13069:585:6",
            "stateMutability": "view",
            "superFunction": 2629,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2045,
              "nodeType": "Block",
              "src": "14059:58:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2043,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2039,
                      "name": "_timestamp",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2034,
                      "src": "14076:10:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2041,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2032,
                          "src": "14104:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 2040,
                        "name": "getAllowedTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2069,
                        "src": "14089:14:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$",
                          "typeString": "function (bytes32) view returns (uint256)"
                        }
                      },
                      "id": 2042,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14089:21:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14076:34:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 2038,
                  "id": 2044,
                  "nodeType": "Return",
                  "src": "14069:41:6"
                }
              ]
            },
            "documentation": "@dev Determines if a name is available for registration yet\n     * Each name will be assigned a random date in which its auction\ncan be started, from 0 to 8 weeks\n     * @param _hash The hash to start an auction on\n@param _timestamp The timestamp to query about",
            "id": 2046,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "isAllowed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2035,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2032,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2046,
                  "src": "13992:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2031,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13992:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2034,
                  "name": "_timestamp",
                  "nodeType": "VariableDeclaration",
                  "scope": 2046,
                  "src": "14007:15:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2033,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "14007:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13991:32:6"
            },
            "returnParameters": {
              "id": 2038,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2037,
                  "name": "allowed",
                  "nodeType": "VariableDeclaration",
                  "scope": 2046,
                  "src": "14045:12:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2036,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "14045:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14044:14:6"
            },
            "scope": 2505,
            "src": "13973:144:6",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2068,
              "nodeType": "Block",
              "src": "14424:140:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2066,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2053,
                      "name": "registryStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1065,
                      "src": "14441:15:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 2064,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 2061,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 2054,
                                  "name": "launchLength",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1060,
                                  "src": "14461:12:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 2059,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "id": 2056,
                                            "name": "_hash",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 2048,
                                            "src": "14482:5:6",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "id": 2055,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "14477:4:6",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": "uint"
                                        },
                                        "id": 2057,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "14477:11:6",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">>",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "313238",
                                        "id": 2058,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "14492:3:6",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_128_by_1",
                                          "typeString": "int_const 128"
                                        },
                                        "value": "128"
                                      },
                                      "src": "14477:18:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "id": 2060,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "14476:20:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "14461:35:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "id": 2062,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "14460:37:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">>",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "313238",
                            "id": 2063,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "14501:3:6",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            "value": "128"
                          },
                          "src": "14460:44:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 2065,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "14459:46:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14441:64:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2052,
                  "id": 2067,
                  "nodeType": "Return",
                  "src": "14434:71:6"
                }
              ]
            },
            "documentation": "@dev Returns available date for hash\n     * The available time from the `registryStarted` for a hash is proportional\nto its numeric value.\n     * @param _hash The hash to start an auction on",
            "id": 2069,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getAllowedTime",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2049,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2048,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2069,
                  "src": "14382:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2047,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14382:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14381:15:6"
            },
            "returnParameters": {
              "id": 2052,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2051,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2069,
                  "src": "14418:4:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2050,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "14418:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14417:6:6"
            },
            "scope": 2505,
            "src": "14358:206:6",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2092,
              "nodeType": "Block",
              "src": "14954:77:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2085,
                            "name": "hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2071,
                            "src": "14998:4:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2086,
                            "name": "owner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2073,
                            "src": "15004:5:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2087,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2075,
                            "src": "15011:5:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 2088,
                            "name": "salt",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2077,
                            "src": "15018:4:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 2083,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3019,
                            "src": "14981:3:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 2084,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "14981:16:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 2089,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "14981:42:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 2082,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3026,
                      "src": "14971:9:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 2090,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14971:53:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 2081,
                  "id": 2091,
                  "nodeType": "Return",
                  "src": "14964:60:6"
                }
              ]
            },
            "documentation": "@dev Hash the values required for a secret bid\n     * @param hash The node corresponding to the desired namehash\n@param value The bid amount\n@param salt A random value to ensure secrecy of the bid\n@return The hash of the bid values",
            "id": 2093,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "shaBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2078,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2071,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2093,
                  "src": "14869:12:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2070,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14869:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2073,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 2093,
                  "src": "14883:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2072,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14883:7:6",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2075,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 2093,
                  "src": "14898:10:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2074,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "14898:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2077,
                  "name": "salt",
                  "nodeType": "VariableDeclaration",
                  "scope": 2093,
                  "src": "14910:12:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2076,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14910:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14868:55:6"
            },
            "returnParameters": {
              "id": 2081,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2080,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2093,
                  "src": "14945:7:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2079,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14945:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14944:9:6"
            },
            "scope": 2505,
            "src": "14853:178:6",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 2146,
              "nodeType": "Block",
              "src": "15090:302:6",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2105,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2100,
                          "name": "rootNode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1041,
                          "src": "15114:8:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 2098,
                          "name": "ens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1039,
                          "src": "15104:3:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ENS_$436",
                            "typeString": "contract ENS"
                          }
                        },
                        "id": 2099,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 405,
                        "src": "15104:9:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                          "typeString": "function (bytes32) view external returns (address)"
                        }
                      },
                      "id": 2101,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15104:19:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2103,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3060,
                          "src": "15135:4:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_HashRegistrar_$2505",
                            "typeString": "contract HashRegistrar"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_HashRegistrar_$2505",
                            "typeString": "contract HashRegistrar"
                          }
                        ],
                        "id": 2102,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "15127:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2104,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15127:13:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "15104:36:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2145,
                  "nodeType": "IfStatement",
                  "src": "15100:286:6",
                  "trueBody": {
                    "id": 2144,
                    "nodeType": "Block",
                    "src": "15142:244:6",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2109,
                              "name": "rootNode",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1041,
                              "src": "15176:8:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2110,
                              "name": "label",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2095,
                              "src": "15186:5:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 2112,
                                  "name": "this",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3060,
                                  "src": "15201:4:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_HashRegistrar_$2505",
                                    "typeString": "contract HashRegistrar"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_HashRegistrar_$2505",
                                    "typeString": "contract HashRegistrar"
                                  }
                                ],
                                "id": 2111,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "15193:7:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 2113,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15193:13:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 2106,
                              "name": "ens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1039,
                              "src": "15156:3:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ENS_$436",
                                "typeString": "contract ENS"
                              }
                            },
                            "id": 2108,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setSubnodeOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 370,
                            "src": "15156:19:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_bytes32_$",
                              "typeString": "function (bytes32,bytes32,address) external returns (bytes32)"
                            }
                          },
                          "id": 2114,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15156:51:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 2115,
                        "nodeType": "ExpressionStatement",
                        "src": "15156:51:6"
                      },
                      {
                        "assignments": [
                          2117
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 2117,
                            "name": "node",
                            "nodeType": "VariableDeclaration",
                            "scope": 2144,
                            "src": "15221:12:6",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 2116,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "15221:7:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 2125,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 2121,
                                  "name": "rootNode",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1041,
                                  "src": "15263:8:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 2122,
                                  "name": "label",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2095,
                                  "src": "15273:5:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2119,
                                  "name": "abi",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3019,
                                  "src": "15246:3:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_abi",
                                    "typeString": "abi"
                                  }
                                },
                                "id": 2120,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberName": "encodePacked",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "15246:16:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function () pure returns (bytes memory)"
                                }
                              },
                              "id": 2123,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15246:33:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 2118,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3026,
                            "src": "15236:9:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (bytes memory) pure returns (bytes32)"
                            }
                          },
                          "id": 2124,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15236:44:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "15221:59:6"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2129,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2117,
                              "src": "15310:4:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "307830",
                                  "id": 2131,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "15324:3:6",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0x0"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 2130,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "15316:7:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 2132,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15316:12:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 2126,
                              "name": "ens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1039,
                              "src": "15294:3:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ENS_$436",
                                "typeString": "contract ENS"
                              }
                            },
                            "id": 2128,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setResolver",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 377,
                            "src": "15294:15:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                              "typeString": "function (bytes32,address) external"
                            }
                          },
                          "id": 2133,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15294:35:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2134,
                        "nodeType": "ExpressionStatement",
                        "src": "15294:35:6"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2138,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2117,
                              "src": "15356:4:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "307830",
                                  "id": 2140,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "15370:3:6",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0x0"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 2139,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "15362:7:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 2141,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15362:12:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 2135,
                              "name": "ens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1039,
                              "src": "15343:3:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ENS_$436",
                                "typeString": "contract ENS"
                              }
                            },
                            "id": 2137,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 384,
                            "src": "15343:12:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                              "typeString": "function (bytes32,address) external"
                            }
                          },
                          "id": 2142,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15343:32:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2143,
                        "nodeType": "ExpressionStatement",
                        "src": "15343:32:6"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 2147,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_tryEraseSingleNode",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2096,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2095,
                  "name": "label",
                  "nodeType": "VariableDeclaration",
                  "scope": 2147,
                  "src": "15066:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2094,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15066:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15065:15:6"
            },
            "returnParameters": {
              "id": 2097,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15090:0:6"
            },
            "scope": 2505,
            "src": "15037:355:6",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2205,
              "nodeType": "Block",
              "src": "15460:366:6",
              "statements": [
                {
                  "assignments": [
                    2155
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2155,
                      "name": "mode",
                      "nodeType": "VariableDeclaration",
                      "scope": 2205,
                      "src": "15470:9:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$2572",
                        "typeString": "enum Registrar.Mode"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2154,
                        "name": "Mode",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 2572,
                        "src": "15470:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$2572",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2159,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2157,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2149,
                        "src": "15488:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 2156,
                      "name": "state",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2030,
                      "src": "15482:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$2572_$",
                        "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                      }
                    },
                    "id": 2158,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15482:12:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$2572",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15470:24:6"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$2572",
                      "typeString": "enum Registrar.Mode"
                    },
                    "id": 2163,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2160,
                      "name": "mode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2155,
                      "src": "15508:4:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$2572",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2161,
                        "name": "Mode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2572,
                        "src": "15516:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Mode_$2572_$",
                          "typeString": "type(enum Registrar.Mode)"
                        }
                      },
                      "id": 2162,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Auction",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "15516:12:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$2572",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "src": "15508:20:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2165,
                  "nodeType": "IfStatement",
                  "src": "15504:33:6",
                  "trueBody": {
                    "expression": null,
                    "functionReturnParameters": 2153,
                    "id": 2164,
                    "nodeType": "Return",
                    "src": "15530:7:6"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Mode_$2572",
                          "typeString": "enum Registrar.Mode"
                        },
                        "id": 2170,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 2167,
                          "name": "mode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2155,
                          "src": "15554:4:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$2572",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2168,
                            "name": "Mode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2572,
                            "src": "15562:4:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Mode_$2572_$",
                              "typeString": "type(enum Registrar.Mode)"
                            }
                          },
                          "id": 2169,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "Open",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "15562:9:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$2572",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "src": "15554:17:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2166,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3035,
                        3036
                      ],
                      "referencedDeclaration": 3035,
                      "src": "15546:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2171,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15546:26:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2172,
                  "nodeType": "ExpressionStatement",
                  "src": "15546:26:6"
                },
                {
                  "assignments": [
                    2174
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2174,
                      "name": "newAuction",
                      "nodeType": "VariableDeclaration",
                      "scope": 2205,
                      "src": "15583:24:6",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2173,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1074,
                        "src": "15583:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2178,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 2175,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1045,
                      "src": "15610:8:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$1074_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 2177,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 2176,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2149,
                      "src": "15619:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "15610:15:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$1074_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15583:42:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2185,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2179,
                        "name": "newAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2174,
                        "src": "15635:10:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 2181,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "registrationDate",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1069,
                      "src": "15635:27:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 2184,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 2182,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3034,
                        "src": "15665:3:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 2183,
                        "name": "totalAuctionLength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1054,
                        "src": "15671:18:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "src": "15665:24:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15635:54:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2186,
                  "nodeType": "ExpressionStatement",
                  "src": "15635:54:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2191,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2187,
                        "name": "newAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2174,
                        "src": "15699:10:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 2189,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1071,
                      "src": "15699:16:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2190,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15718:1:6",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "15699:20:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2192,
                  "nodeType": "ExpressionStatement",
                  "src": "15699:20:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2197,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2193,
                        "name": "newAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2174,
                        "src": "15729:10:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 2195,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1073,
                      "src": "15729:21:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2196,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15753:1:6",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "15729:25:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 2198,
                  "nodeType": "ExpressionStatement",
                  "src": "15729:25:6"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2200,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2149,
                        "src": "15784:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2201,
                          "name": "newAuction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2174,
                          "src": "15791:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$1074_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 2202,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1069,
                        "src": "15791:27:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2199,
                      "name": "AuctionStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2578,
                      "src": "15769:14:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 2203,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15769:50:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2204,
                  "nodeType": "EmitStatement",
                  "src": "15764:55:6"
                }
              ]
            },
            "documentation": null,
            "id": 2206,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [],
                "id": 2152,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 2151,
                  "name": "registryOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1145,
                  "src": "15445:12:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "15445:14:6"
              }
            ],
            "name": "_startAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2150,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2149,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2206,
                  "src": "15421:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2148,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15421:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15420:15:6"
            },
            "returnParameters": {
              "id": 2153,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15460:0:6"
            },
            "scope": 2505,
            "src": "15398:428:6",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2231,
              "nodeType": "Block",
              "src": "15891:109:6",
              "statements": [
                {
                  "body": {
                    "id": 2229,
                    "nodeType": "Block",
                    "src": "15944:50:6",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 2224,
                                "name": "_hashes",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2209,
                                "src": "15972:7:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 2226,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 2225,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2213,
                                "src": "15980:1:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "15972:10:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 2223,
                            "name": "_startAuction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2206,
                            "src": "15958:13:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                              "typeString": "function (bytes32)"
                            }
                          },
                          "id": 2227,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15958:25:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2228,
                        "nodeType": "ExpressionStatement",
                        "src": "15958:25:6"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2219,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2216,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2213,
                      "src": "15918:1:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 2217,
                        "name": "_hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2209,
                        "src": "15922:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      "id": 2218,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "15922:14:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15918:18:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2230,
                  "initializationExpression": {
                    "assignments": [
                      2213
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 2213,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 2230,
                        "src": "15906:6:6",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 2212,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "15906:4:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 2215,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2214,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15915:1:6",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "15906:10:6"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2221,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "15938:4:6",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 2220,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2213,
                        "src": "15938:1:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2222,
                    "nodeType": "ExpressionStatement",
                    "src": "15938:4:6"
                  },
                  "nodeType": "ForStatement",
                  "src": "15901:93:6"
                }
              ]
            },
            "documentation": null,
            "id": 2232,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_startAuctions",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2210,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2209,
                  "name": "_hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 2232,
                  "src": "15856:24:6",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2207,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "15856:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 2208,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "15856:9:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15855:26:6"
            },
            "returnParameters": {
              "id": 2211,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15891:0:6"
            },
            "scope": 2505,
            "src": "15832:168:6",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2289,
              "nodeType": "Block",
              "src": "16051:357:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 2249,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 2239,
                                  "name": "sealedBids",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1051,
                                  "src": "16077:10:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$47_$_$",
                                    "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                                  }
                                },
                                "id": 2242,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2240,
                                    "name": "msg",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3032,
                                    "src": "16088:3:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_message",
                                      "typeString": "msg"
                                    }
                                  },
                                  "id": 2241,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "sender",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "16088:10:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "16077:22:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$47_$",
                                  "typeString": "mapping(bytes32 => contract Deed)"
                                }
                              },
                              "id": 2244,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 2243,
                                "name": "sealedBid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2234,
                                "src": "16100:9:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "16077:33:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$47",
                                "typeString": "contract Deed"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_Deed_$47",
                                "typeString": "contract Deed"
                              }
                            ],
                            "id": 2238,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "16069:7:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 2245,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16069:42:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 2247,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "16123:3:6",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 2246,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "16115:7:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 2248,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16115:12:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "src": "16069:58:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2237,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3035,
                        3036
                      ],
                      "referencedDeclaration": 3035,
                      "src": "16061:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2250,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16061:67:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2251,
                  "nodeType": "ExpressionStatement",
                  "src": "16061:67:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 2256,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2253,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3032,
                            "src": "16146:3:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2254,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "16146:9:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 2255,
                          "name": "minPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1063,
                          "src": "16159:8:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "16146:21:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 2252,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        3035,
                        3036
                      ],
                      "referencedDeclaration": 3035,
                      "src": "16138:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 2257,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16138:30:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2258,
                  "nodeType": "ExpressionStatement",
                  "src": "16138:30:6"
                },
                {
                  "assignments": [
                    2260
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2260,
                      "name": "bid",
                      "nodeType": "VariableDeclaration",
                      "scope": 2289,
                      "src": "16233:8:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 2259,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 47,
                        "src": "16233:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$47",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2271,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2268,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3032,
                          "src": "16286:3:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2269,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "16286:10:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2265,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3032,
                            "src": "16275:3:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2266,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "16275:9:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "id": 2262,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "16245:22:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_creation_payable$_t_address_payable_$returns$_t_contract$_DeedImplementation_$299_$",
                                "typeString": "function (address payable) payable returns (contract DeedImplementation)"
                              },
                              "typeName": {
                                "contractScope": null,
                                "id": 2261,
                                "name": "DeedImplementation",
                                "nodeType": "UserDefinedTypeName",
                                "referencedDeclaration": 299,
                                "src": "16249:18:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_DeedImplementation_$299",
                                  "typeString": "contract DeedImplementation"
                                }
                              }
                            }
                          ],
                          "id": 2263,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "16244:24:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_creation_payable$_t_address_payable_$returns$_t_contract$_DeedImplementation_$299_$",
                            "typeString": "function (address payable) payable returns (contract DeedImplementation)"
                          }
                        },
                        "id": 2264,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "16244:30:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_setvalue_pure$_t_uint256_$returns$_t_function_creation_payable$_t_address_payable_$returns$_t_contract$_DeedImplementation_$299_$value_$",
                          "typeString": "function (uint256) pure returns (function (address payable) payable returns (contract DeedImplementation))"
                        }
                      },
                      "id": 2267,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "16244:41:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_creation_payable$_t_address_payable_$returns$_t_contract$_DeedImplementation_$299_$value",
                        "typeString": "function (address payable) payable returns (contract DeedImplementation)"
                      }
                    },
                    "id": 2270,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16244:53:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DeedImplementation_$299",
                      "typeString": "contract DeedImplementation"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16233:64:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2279,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2272,
                          "name": "sealedBids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1051,
                          "src": "16307:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$47_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                          }
                        },
                        "id": 2276,
                        "indexExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 2273,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3032,
                            "src": "16318:3:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 2274,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "16318:10:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16307:22:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$47_$",
                          "typeString": "mapping(bytes32 => contract Deed)"
                        }
                      },
                      "id": 2277,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 2275,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2234,
                        "src": "16330:9:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "16307:33:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 2278,
                      "name": "bid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2260,
                      "src": "16343:3:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$47",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "16307:39:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$47",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 2280,
                  "nodeType": "ExpressionStatement",
                  "src": "16307:39:6"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2282,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2234,
                        "src": "16368:9:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2283,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3032,
                          "src": "16379:3:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2284,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "16379:10:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 2285,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3032,
                          "src": "16391:3:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 2286,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "16391:9:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 2281,
                      "name": "NewBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2586,
                      "src": "16361:6:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256)"
                      }
                    },
                    "id": 2287,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16361:40:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2288,
                  "nodeType": "EmitStatement",
                  "src": "16356:45:6"
                }
              ]
            },
            "documentation": null,
            "id": 2290,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_newBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2235,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2234,
                  "name": "sealedBid",
                  "nodeType": "VariableDeclaration",
                  "scope": 2290,
                  "src": "16023:17:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2233,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16023:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16022:19:6"
            },
            "returnParameters": {
              "id": 2236,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16051:0:6"
            },
            "scope": 2505,
            "src": "16006:402:6",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2355,
              "nodeType": "Block",
              "src": "16501:441:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2303,
                        "name": "node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2297,
                        "src": "16569:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 2304,
                          "name": "labels",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2295,
                          "src": "16575:6:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 2306,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 2305,
                          "name": "idx",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2292,
                          "src": "16582:3:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16575:11:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 2308,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3060,
                            "src": "16596:4:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_HashRegistrar_$2505",
                              "typeString": "contract HashRegistrar"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_HashRegistrar_$2505",
                              "typeString": "contract HashRegistrar"
                            }
                          ],
                          "id": 2307,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "16588:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 2309,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16588:13:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2300,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1039,
                        "src": "16549:3:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ENS_$436",
                          "typeString": "contract ENS"
                        }
                      },
                      "id": 2302,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setSubnodeOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 370,
                      "src": "16549:19:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_bytes32_$",
                        "typeString": "function (bytes32,bytes32,address) external returns (bytes32)"
                      }
                    },
                    "id": 2310,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16549:53:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 2311,
                  "nodeType": "ExpressionStatement",
                  "src": "16549:53:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2322,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 2312,
                      "name": "node",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2297,
                      "src": "16612:4:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 2316,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2297,
                              "src": "16646:4:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 2317,
                                "name": "labels",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2295,
                                "src": "16652:6:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 2319,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 2318,
                                "name": "idx",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2292,
                                "src": "16659:3:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "16652:11:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 2314,
                              "name": "abi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3019,
                              "src": "16629:3:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_abi",
                                "typeString": "abi"
                              }
                            },
                            "id": 2315,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "encodePacked",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "16629:16:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function () pure returns (bytes memory)"
                            }
                          },
                          "id": 2320,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16629:35:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 2313,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3026,
                        "src": "16619:9:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (bytes memory) pure returns (bytes32)"
                        }
                      },
                      "id": 2321,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "16619:46:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "16612:53:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 2323,
                  "nodeType": "ExpressionStatement",
                  "src": "16612:53:6"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2326,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2324,
                      "name": "idx",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2292,
                      "src": "16724:3:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 2325,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16730:1:6",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "16724:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2336,
                  "nodeType": "IfStatement",
                  "src": "16720:80:6",
                  "trueBody": {
                    "id": 2335,
                    "nodeType": "Block",
                    "src": "16733:67:6",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 2330,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 2328,
                                "name": "idx",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2292,
                                "src": "16767:3:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 2329,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "16773:1:6",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "src": "16767:7:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2331,
                              "name": "labels",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2295,
                              "src": "16776:6:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 2332,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2297,
                              "src": "16784:4:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 2327,
                            "name": "_eraseNodeHierarchy",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2356,
                            "src": "16747:19:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$returns$__$",
                              "typeString": "function (uint256,bytes32[] memory,bytes32)"
                            }
                          },
                          "id": 2333,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16747:42:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 2334,
                        "nodeType": "ExpressionStatement",
                        "src": "16747:42:6"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2340,
                        "name": "node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2297,
                        "src": "16874:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "307830",
                            "id": 2342,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "16888:3:6",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0x0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 2341,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "16880:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 2343,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16880:12:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2337,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1039,
                        "src": "16858:3:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ENS_$436",
                          "typeString": "contract ENS"
                        }
                      },
                      "id": 2339,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setResolver",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 377,
                      "src": "16858:15:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address) external"
                      }
                    },
                    "id": 2344,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16858:35:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2345,
                  "nodeType": "ExpressionStatement",
                  "src": "16858:35:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 2349,
                        "name": "node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2297,
                        "src": "16916:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "307830",
                            "id": 2351,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "16930:3:6",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0x0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 2350,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "16922:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 2352,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16922:12:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 2346,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1039,
                        "src": "16903:3:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ENS_$436",
                          "typeString": "contract ENS"
                        }
                      },
                      "id": 2348,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 384,
                      "src": "16903:12:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address) external"
                      }
                    },
                    "id": 2353,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16903:32:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 2354,
                  "nodeType": "ExpressionStatement",
                  "src": "16903:32:6"
                }
              ]
            },
            "documentation": null,
            "id": 2356,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_eraseNodeHierarchy",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2298,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2292,
                  "name": "idx",
                  "nodeType": "VariableDeclaration",
                  "scope": 2356,
                  "src": "16443:8:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2291,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "16443:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2295,
                  "name": "labels",
                  "nodeType": "VariableDeclaration",
                  "scope": 2356,
                  "src": "16453:23:6",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2293,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "16453:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 2294,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "16453:9:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2297,
                  "name": "node",
                  "nodeType": "VariableDeclaration",
                  "scope": 2356,
                  "src": "16478:12:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2296,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16478:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16442:49:6"
            },
            "returnParameters": {
              "id": 2299,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16501:0:6"
            },
            "scope": 2505,
            "src": "16414:528:6",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2380,
              "nodeType": "Block",
              "src": "17198:118:6",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 2370,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2365,
                          "name": "rootNode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1041,
                          "src": "17222:8:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 2363,
                          "name": "ens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1039,
                          "src": "17212:3:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ENS_$436",
                            "typeString": "contract ENS"
                          }
                        },
                        "id": 2364,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 405,
                        "src": "17212:9:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                          "typeString": "function (bytes32) view external returns (address)"
                        }
                      },
                      "id": 2366,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17212:19:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2368,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3060,
                          "src": "17243:4:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_HashRegistrar_$2505",
                            "typeString": "contract HashRegistrar"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_HashRegistrar_$2505",
                            "typeString": "contract HashRegistrar"
                          }
                        ],
                        "id": 2367,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "17235:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 2369,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17235:13:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "17212:36:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 2379,
                  "nodeType": "IfStatement",
                  "src": "17208:101:6",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 2374,
                          "name": "rootNode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1041,
                          "src": "17282:8:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 2375,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2358,
                          "src": "17292:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 2376,
                          "name": "_newOwner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2360,
                          "src": "17299:9:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 2371,
                          "name": "ens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1039,
                          "src": "17262:3:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ENS_$436",
                            "typeString": "contract ENS"
                          }
                        },
                        "id": 2373,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "setSubnodeOwner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 370,
                        "src": "17262:19:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_bytes32_$",
                          "typeString": "function (bytes32,bytes32,address) external returns (bytes32)"
                        }
                      },
                      "id": 2377,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17262:47:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 2378,
                    "nodeType": "ExpressionStatement",
                    "src": "17262:47:6"
                  }
                }
              ]
            },
            "documentation": "@dev Assign the owner in ENS, if we're still the registrar\n     * @param _hash hash to change owner\n@param _newOwner new owner to transfer to",
            "id": 2381,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "trySetSubnodeOwner",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2361,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2358,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 2381,
                  "src": "17155:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2357,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17155:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2360,
                  "name": "_newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 2381,
                  "src": "17170:17:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2359,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "17170:7:6",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17154:34:6"
            },
            "returnParameters": {
              "id": 2362,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "17198:0:6"
            },
            "scope": 2505,
            "src": "17127:189:6",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2398,
              "nodeType": "Block",
              "src": "17584:83:6",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2392,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2390,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2383,
                      "src": "17598:1:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2391,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2385,
                      "src": "17602:1:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "17598:5:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2395,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2385,
                      "src": "17659:1:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 2389,
                    "id": 2396,
                    "nodeType": "Return",
                    "src": "17652:8:6"
                  },
                  "id": 2397,
                  "nodeType": "IfStatement",
                  "src": "17594:66:6",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2393,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2383,
                      "src": "17624:1:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 2389,
                    "id": 2394,
                    "nodeType": "Return",
                    "src": "17617:8:6"
                  }
                }
              ]
            },
            "documentation": "@dev Returns the maximum of two unsigned integers\n     * @param a A number to compare\n@param b A number to compare\n@return The maximum of two unsigned integers",
            "id": 2399,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "max",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2386,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2383,
                  "name": "a",
                  "nodeType": "VariableDeclaration",
                  "scope": 2399,
                  "src": "17539:6:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2382,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17539:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2385,
                  "name": "b",
                  "nodeType": "VariableDeclaration",
                  "scope": 2399,
                  "src": "17547:6:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2384,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17547:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17538:16:6"
            },
            "returnParameters": {
              "id": 2389,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2388,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2399,
                  "src": "17578:4:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2387,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17578:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17577:6:6"
            },
            "scope": 2505,
            "src": "17526:141:6",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2416,
              "nodeType": "Block",
              "src": "17935:83:6",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2410,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2408,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2401,
                      "src": "17949:1:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2409,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2403,
                      "src": "17953:1:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "17949:5:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2413,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2403,
                      "src": "18010:1:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 2407,
                    "id": 2414,
                    "nodeType": "Return",
                    "src": "18003:8:6"
                  },
                  "id": 2415,
                  "nodeType": "IfStatement",
                  "src": "17945:66:6",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2411,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2401,
                      "src": "17975:1:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 2407,
                    "id": 2412,
                    "nodeType": "Return",
                    "src": "17968:8:6"
                  }
                }
              ]
            },
            "documentation": "@dev Returns the minimum of two unsigned integers\n     * @param a A number to compare\n@param b A number to compare\n@return The minimum of two unsigned integers",
            "id": 2417,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "min",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2404,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2401,
                  "name": "a",
                  "nodeType": "VariableDeclaration",
                  "scope": 2417,
                  "src": "17890:6:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2400,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17890:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2403,
                  "name": "b",
                  "nodeType": "VariableDeclaration",
                  "scope": 2417,
                  "src": "17898:6:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2402,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17898:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17889:16:6"
            },
            "returnParameters": {
              "id": 2407,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2406,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2417,
                  "src": "17929:4:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2405,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17929:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17928:6:6"
            },
            "scope": 2505,
            "src": "17877:141:6",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 2503,
              "nodeType": "Block",
              "src": "18256:779:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2424,
                    "name": "s",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2419,
                    "src": "18266:1:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "id": 2425,
                  "nodeType": "ExpressionStatement",
                  "src": "18266:1:6"
                },
                {
                  "assignments": [
                    2427
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2427,
                      "name": "ptr",
                      "nodeType": "VariableDeclaration",
                      "scope": 2503,
                      "src": "18384:8:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2426,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "18384:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2428,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18384:8:6"
                },
                {
                  "assignments": [
                    2430
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2430,
                      "name": "end",
                      "nodeType": "VariableDeclaration",
                      "scope": 2503,
                      "src": "18402:8:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2429,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "18402:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2431,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18402:8:6"
                },
                {
                  "externalReferences": [
                    {
                      "ptr": {
                        "declaration": 2427,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "18443:3:6",
                        "valueSize": 1
                      }
                    },
                    {
                      "s": {
                        "declaration": 2419,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "18454:1:6",
                        "valueSize": 1
                      }
                    },
                    {
                      "end": {
                        "declaration": 2430,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "18472:3:6",
                        "valueSize": 1
                      }
                    },
                    {
                      "s": {
                        "declaration": 2419,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "18489:1:6",
                        "valueSize": 1
                      }
                    },
                    {
                      "ptr": {
                        "declaration": 2427,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "18493:3:6",
                        "valueSize": 1
                      }
                    }
                  ],
                  "id": 2432,
                  "nodeType": "InlineAssembly",
                  "operations": "{\n    ptr := add(s, 1)\n    end := add(mload(s), ptr)\n}",
                  "src": "18420:87:6"
                },
                {
                  "assignments": [
                    2434
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 2434,
                      "name": "len",
                      "nodeType": "VariableDeclaration",
                      "scope": 2503,
                      "src": "18516:8:6",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 2433,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "18516:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 2436,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 2435,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "18527:1:6",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18516:12:6"
                },
                {
                  "body": {
                    "id": 2499,
                    "nodeType": "Block",
                    "src": "18566:443:6",
                    "statements": [
                      {
                        "assignments": [
                          2446
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 2446,
                            "name": "b",
                            "nodeType": "VariableDeclaration",
                            "scope": 2499,
                            "src": "18580:7:6",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "typeName": {
                              "id": 2445,
                              "name": "uint8",
                              "nodeType": "ElementaryTypeName",
                              "src": "18580:5:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 2447,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "18580:7:6"
                      },
                      {
                        "externalReferences": [
                          {
                            "b": {
                              "declaration": 2446,
                              "isOffset": false,
                              "isSlot": false,
                              "src": "18612:1:6",
                              "valueSize": 1
                            }
                          },
                          {
                            "ptr": {
                              "declaration": 2427,
                              "isOffset": false,
                              "isSlot": false,
                              "src": "18627:3:6",
                              "valueSize": 1
                            }
                          }
                        ],
                        "id": 2448,
                        "nodeType": "InlineAssembly",
                        "operations": "{ b := and(mload(ptr), 0xFF) }",
                        "src": "18601:39:6"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 2451,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 2449,
                            "name": "b",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2446,
                            "src": "18657:1:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30783830",
                            "id": 2450,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "18661:4:6",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            "value": "0x80"
                          },
                          "src": "18657:8:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 2459,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 2457,
                              "name": "b",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2446,
                              "src": "18718:1:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30784530",
                              "id": 2458,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "18722:4:6",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_224_by_1",
                                "typeString": "int_const 224"
                              },
                              "value": "0xE0"
                            },
                            "src": "18718:8:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "condition": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              },
                              "id": 2467,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 2465,
                                "name": "b",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2446,
                                "src": "18779:1:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "30784630",
                                "id": 2466,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "18783:4:6",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_240_by_1",
                                  "typeString": "int_const 240"
                                },
                                "value": "0xF0"
                              },
                              "src": "18779:8:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "id": 2475,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 2473,
                                  "name": "b",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2446,
                                  "src": "18840:1:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30784638",
                                  "id": 2474,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "18844:4:6",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_248_by_1",
                                    "typeString": "int_const 248"
                                  },
                                  "value": "0xF8"
                                },
                                "src": "18840:8:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": {
                                "condition": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 2483,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "id": 2481,
                                    "name": "b",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2446,
                                    "src": "18901:1:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "30784643",
                                    "id": 2482,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "18905:4:6",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_252_by_1",
                                      "typeString": "int_const 252"
                                    },
                                    "value": "0xFC"
                                  },
                                  "src": "18901:8:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "falseBody": {
                                  "id": 2493,
                                  "nodeType": "Block",
                                  "src": "18958:41:6",
                                  "statements": [
                                    {
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2491,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                          "argumentTypes": null,
                                          "id": 2489,
                                          "name": "ptr",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 2427,
                                          "src": "18976:3:6",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "+=",
                                        "rightHandSide": {
                                          "argumentTypes": null,
                                          "hexValue": "36",
                                          "id": 2490,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "18983:1:6",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_6_by_1",
                                            "typeString": "int_const 6"
                                          },
                                          "value": "6"
                                        },
                                        "src": "18976:8:6",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 2492,
                                      "nodeType": "ExpressionStatement",
                                      "src": "18976:8:6"
                                    }
                                  ]
                                },
                                "id": 2494,
                                "nodeType": "IfStatement",
                                "src": "18897:102:6",
                                "trueBody": {
                                  "id": 2488,
                                  "nodeType": "Block",
                                  "src": "18911:41:6",
                                  "statements": [
                                    {
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 2486,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                          "argumentTypes": null,
                                          "id": 2484,
                                          "name": "ptr",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 2427,
                                          "src": "18929:3:6",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "+=",
                                        "rightHandSide": {
                                          "argumentTypes": null,
                                          "hexValue": "35",
                                          "id": 2485,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "18936:1:6",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_5_by_1",
                                            "typeString": "int_const 5"
                                          },
                                          "value": "5"
                                        },
                                        "src": "18929:8:6",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 2487,
                                      "nodeType": "ExpressionStatement",
                                      "src": "18929:8:6"
                                    }
                                  ]
                                }
                              },
                              "id": 2495,
                              "nodeType": "IfStatement",
                              "src": "18836:163:6",
                              "trueBody": {
                                "id": 2480,
                                "nodeType": "Block",
                                "src": "18850:41:6",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 2478,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "id": 2476,
                                        "name": "ptr",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 2427,
                                        "src": "18868:3:6",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "+=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "hexValue": "34",
                                        "id": 2477,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "18875:1:6",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_4_by_1",
                                          "typeString": "int_const 4"
                                        },
                                        "value": "4"
                                      },
                                      "src": "18868:8:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 2479,
                                    "nodeType": "ExpressionStatement",
                                    "src": "18868:8:6"
                                  }
                                ]
                              }
                            },
                            "id": 2496,
                            "nodeType": "IfStatement",
                            "src": "18775:224:6",
                            "trueBody": {
                              "id": 2472,
                              "nodeType": "Block",
                              "src": "18789:41:6",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 2470,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "argumentTypes": null,
                                      "id": 2468,
                                      "name": "ptr",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 2427,
                                      "src": "18807:3:6",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "+=",
                                    "rightHandSide": {
                                      "argumentTypes": null,
                                      "hexValue": "33",
                                      "id": 2469,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "18814:1:6",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_3_by_1",
                                        "typeString": "int_const 3"
                                      },
                                      "value": "3"
                                    },
                                    "src": "18807:8:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 2471,
                                  "nodeType": "ExpressionStatement",
                                  "src": "18807:8:6"
                                }
                              ]
                            }
                          },
                          "id": 2497,
                          "nodeType": "IfStatement",
                          "src": "18714:285:6",
                          "trueBody": {
                            "id": 2464,
                            "nodeType": "Block",
                            "src": "18728:41:6",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 2462,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "id": 2460,
                                    "name": "ptr",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2427,
                                    "src": "18746:3:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "+=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "hexValue": "32",
                                    "id": 2461,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "18753:1:6",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    },
                                    "value": "2"
                                  },
                                  "src": "18746:8:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 2463,
                                "nodeType": "ExpressionStatement",
                                "src": "18746:8:6"
                              }
                            ]
                          }
                        },
                        "id": 2498,
                        "nodeType": "IfStatement",
                        "src": "18653:346:6",
                        "trueBody": {
                          "id": 2456,
                          "nodeType": "Block",
                          "src": "18667:41:6",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 2454,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 2452,
                                  "name": "ptr",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 2427,
                                  "src": "18685:3:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "+=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 2453,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "18692:1:6",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "18685:8:6",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 2455,
                              "nodeType": "ExpressionStatement",
                              "src": "18685:8:6"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 2441,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 2439,
                      "name": "ptr",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2427,
                      "src": "18548:3:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 2440,
                      "name": "end",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2430,
                      "src": "18554:3:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "18548:9:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 2500,
                  "initializationExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2437,
                      "name": "len",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2434,
                      "src": "18543:3:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2438,
                    "nodeType": "ExpressionStatement",
                    "src": "18543:3:6"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 2443,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "18559:5:6",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 2442,
                        "name": "len",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 2434,
                        "src": "18559:3:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2444,
                    "nodeType": "ExpressionStatement",
                    "src": "18559:5:6"
                  },
                  "nodeType": "ForStatement",
                  "src": "18538:471:6"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 2501,
                    "name": "len",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 2434,
                    "src": "19025:3:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 2423,
                  "id": 2502,
                  "nodeType": "Return",
                  "src": "19018:10:6"
                }
              ]
            },
            "documentation": "@dev Returns the length of a given string\n     * @param s The string to measure the length of\n@return The length of the input string",
            "id": 2504,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "strlen",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2420,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2419,
                  "name": "s",
                  "nodeType": "VariableDeclaration",
                  "scope": 2504,
                  "src": "18210:15:6",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 2418,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "18210:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18209:17:6"
            },
            "returnParameters": {
              "id": 2423,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2422,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2504,
                  "src": "18250:4:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2421,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "18250:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18249:6:6"
            },
            "scope": 2505,
            "src": "18194:841:6",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          }
        ],
        "scope": 2506,
        "src": "586:18452:6"
      }
    ],
    "src": "0:19039:6"
  },
  "compiler": {
    "name": "solc",
    "version": "0.5.16+commit.9c3226ce.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.2.0",
  "updatedAt": "2020-06-23T14:47:43.696Z",
  "devdoc": {
    "details": "The registrar handles the auction process for each subnode of the node it owns.",
    "methods": {
      "acceptRegistrarTransfer(bytes32,address,uint256)": {
        "details": "Accepts a transfer from a previous registrar; stubbed out here since there     is no previous registrar implementing this interface.",
        "params": {
          "deed": "The Deed object for the name being transferred in.",
          "hash": "The sha3 hash of the label to transfer.",
          "registrationDate": "The date at which the name was originally registered."
        }
      },
      "cancelBid(address,bytes32)": {
        "details": "Cancel a bid",
        "params": {
          "seal": "The value returned by the shaBid function"
        }
      },
      "constructor": {
        "details": "Constructs a new Registrar, with the provided address as the owner of the root node.",
        "params": {
          "_ens": "The address of the ENS",
          "_rootNode": "The hash of the rootnode."
        }
      },
      "eraseNode(bytes32[])": {
        "details": "Allows anyone to delete the owner and resolver records for a (subdomain of) a     name that is not currently owned in the registrar. If passing, eg, 'foo.bar.eth',     the owner and resolver fields on 'foo.bar.eth' and 'bar.eth' will all be cleared.",
        "params": {
          "labels": "A series of label hashes identifying the name to zero out, rooted at the       registrar's root. Must contain at least one element. For instance, to zero        'foo.bar.eth' on a registrar that owns '.eth', pass an array containing       [keccak256('foo'), keccak256('bar')]."
        }
      },
      "finalizeAuction(bytes32)": {
        "details": "Finalize an auction after the registration date has passed",
        "params": {
          "_hash": "The hash of the name the auction is for"
        }
      },
      "getAllowedTime(bytes32)": {
        "details": "Returns available date for hash     * The available time from the `registryStarted` for a hash is proportional to its numeric value.",
        "params": {
          "_hash": "The hash to start an auction on"
        }
      },
      "invalidateName(string)": {
        "details": "Submit a name 6 characters long or less. If it has been registered,     the submitter will earn 50% of the deed value.       * We are purposefully handicapping the simplified registrar as a way  to force it into being restructured in a few years.",
        "params": {
          "unhashedName": "An invalid name to search for in the registry."
        }
      },
      "isAllowed(bytes32,uint256)": {
        "details": "Determines if a name is available for registration yet     * Each name will be assigned a random date in which its auction can be started, from 0 to 8 weeks",
        "params": {
          "_hash": "The hash to start an auction on",
          "_timestamp": "The timestamp to query about"
        }
      },
      "newBid(bytes32)": {
        "details": "Submit a new sealed bid on a desired hash in a blind auction     * Bids are sent by sending a message to the main contract with a hash and an amount. The hash contains information about the bid, including the bidded hash, the bid amount, and a random salt. Bids are not tied to any one auction until they are revealed. The value of the bid itself can be masqueraded by sending more than the value of your actual bid. This is followed by a 48h reveal period. Bids revealed after this period will be burned and the ether unrecoverable. Since this is an auction, it is expected that most public hashes, like known domains and common dictionary words, will have multiple bidders pushing the price up.",
        "params": {
          "sealedBid": "A sealedBid, created by the shaBid function"
        }
      },
      "releaseDeed(bytes32)": {
        "details": "After some time, or if we're no longer the registrar, the owner can release     the name and get their ether back.",
        "params": {
          "_hash": "The node to release"
        }
      },
      "shaBid(bytes32,address,uint256,bytes32)": {
        "details": "Hash the values required for a secret bid",
        "params": {
          "hash": "The node corresponding to the desired namehash",
          "salt": "A random value to ensure secrecy of the bid",
          "value": "The bid amount"
        },
        "return": "The hash of the bid values"
      },
      "startAuction(bytes32)": {
        "details": "Start an auction for an available hash",
        "params": {
          "_hash": "The hash to start an auction on"
        }
      },
      "startAuctions(bytes32[])": {
        "details": "Start multiple auctions for better anonymity     * Anyone can start an auction by sending an array of hashes that they want to bid for. Arrays are sent so that someone can open up an auction for X dummy hashes when they are only really interested in bidding for one. This will increase the cost for an attacker to simply bid blindly on all new auctions. Dummy auctions that are open but not bid on are closed after a week.",
        "params": {
          "_hashes": "An array of hashes, at least one of which you presumably want to bid on"
        }
      },
      "startAuctionsAndBid(bytes32[],bytes32)": {
        "details": "Start a set of auctions and bid on one of them     * This method functions identically to calling `startAuctions` followed by `newBid`, but all in one transaction.",
        "params": {
          "hashes": "A list of hashes to start auctions on.",
          "sealedBid": "A sealed bid for one of the auctions."
        }
      },
      "transfer(bytes32,address)": {
        "details": "The owner of a domain may transfer it to someone else at any time.",
        "params": {
          "_hash": "The node to transfer",
          "newOwner": "The address to transfer ownership to"
        }
      },
      "transferRegistrars(bytes32)": {
        "details": "Transfers the deed to the current registrar, if different from this one.     * Used during the upgrade process to a permanent registrar.",
        "params": {
          "_hash": "The name hash to transfer."
        }
      },
      "unsealBid(bytes32,uint256,bytes32)": {
        "details": "Submit the properties of a bid to reveal them",
        "params": {
          "_hash": "The node in the sealedBid",
          "_salt": "The sale in the sealedBid",
          "_value": "The bid amount in the sealedBid"
        }
      }
    },
    "title": "Registrar"
  },
  "userdoc": {
    "methods": {}
  }
}